为了账号安全,请及时绑定邮箱和手机立即绑定

angularjs中嵌套的directive之间如何进行scope通讯?

angularjs中嵌套的directive之间如何进行scope通讯?

猛跑小猪 2018-08-10 06:05:10
html代码<div ng-controller="parentController">         <button-bar>         <button class="primary" ng-click="onPrimary1Click()">{{primary1Label}}</button>         <button class="primary">Primary2</button>     </button-bar></div>js代码scope: false下buttonBar和primary都能得到controller中的test=222,但是如何能在buttonBar中修改test,并使primary获取到修改后的值呢?
查看完整描述

1 回答

?
青春有我

TA贡献1784条经验 获得超8个赞

如果你非要这么做的话,应该用引用类型:

var testapp = angular.module('testapp', []);

testapp.controller('parentController', ['$scope', '$window', function($scope, $window) {    console.log('parentController scope id = ', $scope.$id);
    $scope.primary1Label = 'Prime1';
    $scope.test= { test2: 222 };
    $scope.onPrimary1Click = function() {
        $window.alert('Primary1 clicked');    
    };
}]);

testapp.directive('primary', function() {    return {        restrict: 'C',        scope: false,  
        link: function(scope, element, attrs) {
            alert(scope.test.test2);
            element.addClass('btn btn-primary');
        }
    }
});

testapp.directive('buttonBar', function() {    return {        restrict: 'EA',        template: '<div class="span4 well clearfix"><div class="pull-right" ng-transclude></div></div>',        replace: true,        transclude: true,        scope: false,       
        link: function(scope, element, attrs) {
                scope.test.test2 = 111;                //alert(scope.primary1Label);
        }        
    };
});


查看完整回答
反对 回复 2018-09-14
  • 1 回答
  • 0 关注
  • 777 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信