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); } }; });
添加回答
举报
0/150
提交
取消