国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

angular.js - angular指令 作用域問題
我想大聲告訴你
我想大聲告訴你 2017-05-15 16:58:21
0
4
696

如何讓指令內(nèi)部的controller產(chǎn)生的資料傳到指令外部的控制器中

我想大聲告訴你
我想大聲告訴你

全部回覆(4)
漂亮男人

先說三種方法:

  1. 樓上回答的用廣播通信,$emit向上,$broadcast向下

  2. service共享數(shù)據(jù),就是把同一個service注入到directivecontroller中,然后操作這個service的數(shù)據(jù)就好

  3. 當(dāng)然你的directive如果在controller的里面,本身就可以訪問到controller的作用域(前提是沒創(chuàng)建獨(dú)立scope),直接在directivecontroller中操作scope就可以了

漂亮男人

內(nèi)部 $scope.$emit("emit",data)
外部 $scope.$on("emit",function(ev,data){console.log(data)})

世界只因有你

使用獨(dú)立作用域,"="雙向綁定,將想要綁定的資料透過指令中的參數(shù)傳遞進(jìn)來。

僅有的幸福

有很多種方法,看你的資料想要如何使用。

透過事件訂閱和廣播進(jìn)行分發(fā)

//$rootScope
$rootScope.$on('data-pass',function(event, data){ $rootScope.$broadcast('data-receive', data) })
// 傳遞數(shù)據(jù)的controller
$scope.$emit('data-pass', data)
// 需要數(shù)據(jù)的controller
$scope.$on('data-receiver', function(event, data){
    // use data to do something
})

透過$scope的繼承特性改寫根作用域上的物件屬性值

// 根作用域
$rootScope.data = {}
// 傳遞數(shù)據(jù)的controller
$scope.data.record = {}
// 需要數(shù)據(jù)的controller
// use $scope.data.record to do something

透過angular公用模組用於資料存儲,注入到需要使用的controller裡

angular.factory('publicData',function(){
    return {}
});
// 傳遞數(shù)據(jù)的controller
angular.controller('passController',function($scope, publicData){
    publicData.record = {}
})
// 需要數(shù)據(jù)的controller
angular.controller('needController',function($scope, publicData){
    // use publicData.record to do something
})
最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板