0

在我的 Angular 应用程序中,如果变量为真,我希望某个div出现,如果为假,则消失。

但是,它不起作用。看我的小提琴

谁能帮我理解为什么?

HTML

<div ng-controller="MyCtrl">
    <div id="newProjectButton" class="project" ng-click="newProjectActive()" ng-if="!creatingNew">
            <h1> + </h1>
            <h3> New Project </h3>
    </div>
    <div id="newProjectActive" class="project" ng-if="creatingNew">
        <form>
            <input name="name" ng-model="newProjectName" type="text"></input>
            <button ng-click="newProject()" type="submit" class='btn btn-primary'>Save</button>
        </form>
    </div>
</div>

JS

var myApp = angular.module('myApp', []);

function MyCtrl($scope) {
    $scope.name = 'Superhero';

    $scope.creatingNew = false;

    $scope.newProjectActive = function () {
        $scope.creatingNew = true;
    }

    $scope.newProject = function () {
        alert($scope.newProjectName);
    }

}
4

2 回答 2

5

你的角度版本是1.0.1. 指令ng-if不在此版本的 Angular 中。它在 Angular 1.1.5 中介绍检查这篇文章 并在Directives主题更改日志下的 Angular 中检查它

AngularJS first added the ngIf directive in 1.1.5

请更新角度版本

这是演示

你的控制器应该像

myApp.controller("MyCtrl" , function($scope) {

因为在 Angular 1.3 中默认不支持全局控制器...检查这个

于 2014-12-07T11:31:48.577 回答
2

首先,当我查看您的小提琴时,那里有您的示例的旧版本,

其次,这实际上可能是一个原因,在该示例中,您在 1.0.1 版本中使用了 angular,我相信该版本没有实现 ng-if。更新到最新版本将解决您的问题

于 2014-12-07T11:31:48.200 回答