簡體   English   中英

Angular:在子函數中更新范圍var

[英]Angular: update scope var within child function

在app.js中:

.controller('MainCtrl', function($scope) {
 $scope.history = {
            drive:  "Jim"
        };

 $scope.getNote = function () {
     $scope.history.drive ="Eric";
 }

 };

在HTML視圖中:

<textarea name="notesdata">{{history.drive}}</textarea>

當視圖加載時,我在文本區域中看到Jim。 但是當我調用getNote()時,我希望它會更改為Eric,而不會更改為Eric。 我究竟做錯了什么?

我嘗試添加$ scope.apply(); 在$ scope.history.drive =“ Eric”之后; 但隨后出現“錯誤:$ apply in progress”

只是一個錯字。

這個:

$scope.getNote() = function () {
  $scope.history.drive ="Eric";
}

應該是這樣的:

$scope.getNote = function () {
  $scope.history.drive ="Eric";
}

這是一個小提琴: http : //jsfiddle.net/u67kov5e/

我認為您可能對$scope.apply()想法很接近。

如果您在不在 “角度世界”中的事件監聽器中調用$scope.getNote() ,例如,您已綁定了一個“ click”事件,而未使用ng-click ,則您需要觸發一個調用$scope.getNote()時進行摘要

最好的方法是這樣的:

// pseudocode representing non-angular event
on('someEvent', function (){
  // trigger a digest to tell angular about this event
  $scope.$apply(function (){
    $scope.getNote();
  });
});

小提琴工作正常,因為ng-click指令在其內部觸發了摘要。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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