![](/img/trans.png)
[英]How to call AngularJS parent directive scope method from child directive
[英]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.