簡體   English   中英

AngularJS:從子指令設置父控制器$ scope變量

[英]AngularJS : set parent controller $scope variable from child directive

我有一個主控制器EventCtrl ,它在其作用域上設置了一個formData變量。

該控制器具有一個setEventObject方法,該方法將覆蓋formData對象。

我的目的是能夠從子指令中調用此方法,並將新的變量值遞歸地應用於每個作用域。

這是控制器及其setEventObject函數:

app.controller('EventCtrl', function($scope) {
  $scope.formData = {
    id: 1,
    name: 'tennis lesson'
  }
  $scope.events = [
    {id: 1, name: 'tennis lesson'}, 
    {id: 2, name: 'golf lesson'}, 
    {id: 3, name: 'handball lesson'}
  ];

  this.setEventObject = function(eventId) {
    angular.forEach($scope.events, function(elem) {
      if (elem.id == eventId) {
        $scope.formData = {
          id: elem.id,
          name: elem.name
        };
      }
    });
  }
});

這是關聯的Plunkr ,單擊鏈接后,應設置表單輸入並重置formData變量。

感謝您的幫助!

您正在使用element.bind('click'來監聽點擊。這是jQuery,而這些更改超出了angular的范圍。您需要告訴角度您所做的更改。

替換eventCtrl.setEventObject(scope.event.id); 符合

scope.$apply(function () {
    eventCtrl.setEventObject(scope.event.id);
});

我嘗試了上述更改,但效果正常。

暫無
暫無

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

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