Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/426.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript AngularJS范围变量始终未定义_Javascript_Html_Angularjs_Angularjs Scope_Angularjs Ng Repeat - Fatal编程技术网

Javascript AngularJS范围变量始终未定义

Javascript AngularJS范围变量始终未定义,javascript,html,angularjs,angularjs-scope,angularjs-ng-repeat,Javascript,Html,Angularjs,Angularjs Scope,Angularjs Ng Repeat,这听起来可能是个愚蠢的问题,但我已经在这个问题上纠缠了几个小时。我一定忽略了一些非常简单的事情 我有一个ng repeat指令,它输出一个项目列表: <div ng-controller="MyCtrl"> <div ng-repeat="foo in bars"> .... </div> </div> 但是$scope.valueToAdd总是给我未定义的 我错过了什么 编辑:这里有一个问题被重现了:ng repeat为

这听起来可能是个愚蠢的问题,但我已经在这个问题上纠缠了几个小时。我一定忽略了一些非常简单的事情

我有一个ng repeat指令,它输出一个项目列表:

<div ng-controller="MyCtrl">
    <div ng-repeat="foo in bars">
    ....
    </div>
</div>
但是$scope.valueToAdd总是给我未定义的

我错过了什么

编辑:这里有一个问题被重现了:

ng repeat为它的每个重复部分创建了新的作用域,因此valueToAdd绑定到该内部作用域上的一个变量,该变量是外部作用域的子变量。调用addStuff时,它可以工作,因为它通过作用域继承访问外部作用域上的方法,但它尝试引用的变量未在该外部作用域中定义

请尝试将值传递给addStuff:

ng repeat为每个重复的部分创建新的作用域,因此valueToAdd绑定到该内部作用域上的一个变量,该变量是外部作用域的子变量。调用addStuff时,它可以工作,因为它通过作用域继承访问外部作用域上的方法,但它尝试引用的变量未在该外部作用域中定义

请尝试将值传递给addStuff:


看起来很好,嗯,好的。让我再看看。例如,可能是我复制/粘贴的代码之外的内容。典型的-可能valueToAdd超出了MyCtrl@Atrix1987打得好,我想不会,但可能会:嗨,伙计们,刚刚添加了一个指向plunker的链接。我将你的plunker@robertklep分叉并进行了修改,因此它更类似于我的实际代码,现在我也遇到了同样的问题。似乎工作得很好。让我再看看。例如,可能是我复制/粘贴的代码之外的内容。典型的-可能valueToAdd超出了MyCtrl@Atrix1987好主意,我想不会,但可能会:嗨,伙计们,刚刚添加了一个指向plunker的链接。我将你的plunker@robertklep分叉并进行了修改,因此它更类似于我的实际代码,现在我也遇到了同样的问题。宾果!这很有道理。谢谢答对 了这很有道理。谢谢
<div class="add">
    <input ng-model="valueToAdd" class="weight" />
    <a ng-click="addStuff()" class="button-small"> + Add</a>    
</div>
function MyCtrl($scope) {
    $scope.addStuff= function () {
        alert($scope.valueToAdd);
    }
}
ng-click="addStuff(valueToAdd)"