[英]Setting $scope variables 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>
<p>Age: {{cAge}}</p>
<p>Notes: {{cNotes}}</p>
Controller.js
$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>
希望這有助於發布更多信息或使用插栓...
實際上,您不必在ng-change事件中傳遞名稱,因為您實際上已經在范圍內使用了該名稱。 changeEvent可以直接使用$ scope.name而不是將其作為參數傳遞。
ng-change="selectChange()"
JS
$scope.selectChange = function(){
$scope.cName = $scope.name.name;
and so on.
};
id建議您給它起一個比名字更好的名字,我想這是在談論一個人,因此,如果您將其命名為Person.Name等,將更易於閱讀;)
由於要為控制器創建作用域,因此您還需要將打印內容包裝在與現在具有名稱相同的控制器中,以使其起作用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.