Javascript 设置$scope变量AngularJS
因此,我在事件之后向$scope添加变量时遇到了一个问题。 下面是选择框的HTML。基本上,当它被改变时,我需要改变范围Javascript 设置$scope变量AngularJS,javascript,angularjs,Javascript,Angularjs,因此,我在事件之后向$scope添加变量时遇到了一个问题。 下面是选择框的HTML。基本上,当它被改变时,我需要改变范围 Index.html <select ng-controller="ClientCtrl" ng-model="name" ng-options="v.name for (k, v) in client" ng-change="selectChange(name)"> </select> <h2>{{cName}}</h2>
Index.html
<select ng-controller="ClientCtrl" ng-model="name"
ng-options="v.name for (k, v) in client" ng-change="selectChange(name)">
</select>
<h2>{{cName}}</h2>
<p>Age: {{cAge}}</p>
<p>Notes: {{cNotes}}</p>
$scope.selectChange = function(name){
$scope.cName = name.name;
$scope.cAge = name.age;
$scope.cNotes = name.notes;
};
我尝试了一些方法来设置这些变量。显然上面这个,然后这个:
$scope.selectChange = function(name){
$scope.cName = name.name;
$scope.cAge = name.age;
$scope.cNotes = name.notes;
$scope.$apply();
};
我还是不太明白,但我想我应该试试。任何帮助都会很棒,只需要一个指针来告诉我为什么这样做行不通
我可以获取要发布到console.log(cName)的变量;但是当我有{cName}但没有更多信息时,它不会出现。很难完全调试,但是从我所看到的情况来看,我建议将整个html包装在控制器ClientCtrl中,否则h2和p标记将无法访问它创建的范围
<div ng-controller="ClientCtrl">
<select ng-model="name" ng-options="v.name for (k, v) in client" ng-change="selectChange(name)">
</select>
<h2>{{cName}}</h2>
<p>Age: {{cAge}}</p>
<p>Notes: {{cNotes}}</p>
</div>
{{cName}}
年龄:{{cAge}
注:{{cNotes}
希望这有助于发布更多信息或使用plunker 您实际上不必在ng change事件中传入名称,因为您实际上已经在范围中传入了名称。changeEvent可以直接使用$scope.name,而不是将其作为参数传递
ng-change="selectChange()"
js
$scope.selectChange = function(){
$scope.cName = $scope.name.name;
and so on.
};
我建议你给它起一个比名字更好的名字,我想我们谈论的是一个人,所以如果你叫它person,读起来会更容易
由于为控制器创建了作用域,因此您还需要将打印内容包装在您现在的名称所在的同一控制器中,以使其正常工作 好吧,我应用了这个,它修复了很多东西!我肯定应该想到这一点,我在遵循一个我在其他地方找到的变化函数,但现在你说这样做更有意义。这是一个用这个工作的扑克牌。谢谢我在ng视图中有h2和p,上面有ClientCtrl,但我肯定应该在我的问题中描述这一点。我按照您在plunker中所述的方式展示了它,以供澄清,谢谢!答案是@StenMuchow。