使用ng-include时,Angular范围变量为null(添加了一个plunker)

时间:2014-07-23 15:31:21

标签: angularjs

当我尝试在保存功能中访问它时,$ scope中的模型不存在。 根据以下代码:desc具有文本输入中的值,但desc2没有。

代码有什么问题,或者在使用$ scope时我是否遗漏了什么?

HTML:

<input type="text" ng-model="myModel.description">

的JavaScript

MyApp.controller('MyCtrl', ['$scope', function($scope) {
    $scope.save = function() {
        var desc = this.myModel.description; // This has a value
        var desc2 = $scope.myModel.description; // This does NOT have a value
    };
}]);

修改 添加了plunker:http://plnkr.co/edit/3l9ZE7O2wpbfnH7XPA9X?p=preview

此问题似乎与使用ng-include有关。 如果我不使用ng-include,那么它似乎工作正常。

1 个答案:

答案 0 :(得分:2)

ng-include元素引入了子范围。现在,您的myModel附加给了孩子,但您的控制器$scope是父母。家长范围无法看到孩子的变量,但孩子可以看到他们的父母。

您可以将myModel = {};添加到您的控制器,它应该可以正常工作。这样,孩子的范围就会引用他的父母的身份。 myModel并且不会创建自己的。