目前,我正面臨一個與angularjs指令相關的問題。我想將來自指令1的出口對象發送到指令2。兩個指令具有相同的控制器範圍。我嘗試從指令1發送事件到控制器,將該事件從控制器廣播到指令2並在指令2上偵聽該事件。但那是行不通的。在兄弟指令之間共享數據
指令1:
angular.module('moduleName')
.directive('directive1', function() {
return {
restrict: 'E',
templateUrl: 'directive1.html',
scope: false,
link: function(scope) {
scope.selectOutlet = function(outlet) {
scope.order.entityId = outlet.id;
scope.navigation.currentTab = 'right';
};
}
};
這裏,在指令1,scope.selectOutlet()outletId設置爲scope.order.entityId。我想將該行移動/設置爲指令2保存功能。
指令2:
angular.module('moduleName')
.directive('directive2', function(config, $rootScope, $state) {
return {
restrict: 'E',
templateUrl: 'directive2.html',
scope: false,
link: function(scope) {
scope.save = function() {
// Save functionality
// scope.order.entityId = outlet.id; This is what i want to do
};
}
};
});
});
任何幫助。
你可以創建plunker嗎?我創建'angular.module( 'assetsApp')服務( 'SharedService',函數(){ 返回{ 共享對象:{ confirmOrdering:假 } }; });' 並注入到控制器此和指令,但沒有在控制器中獲取更新的值。 –
http://jsfiddle.net/shardulpendse/02eykvwy/ 只是檢查上面的jsFiddle。雖然它不完美。但是,如果我們想要一次更改值,那麼我們可以使用廣播或使用手錶進行更改。它是第二部分。它可以被增強。 –