簡體   English   中英

設置$ scope變量AngularJS

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM