0
我正在嘗試使用transclude指令。當我嘗試在粘性變量中傳遞array
名稱時,它不通過,但name
變量的字符串值正在工作。我在控制器中定義了數組和名稱字符串。數組名不通過傳遞指令
注意::從my-box指令中寫出的菜單是採用arry名稱並且正常工作。
請建議,
HTML ::
<my-box
bgcolor="#EFF"
my-title="buzz2222"
my-height="170"
my-width="1050"
my-color="#1a1a1a"
my-bgcolor="#FBFBF9"
my-collapseoption=true
my-widgetno="1"
my-template="latest_template.html"
my-url="Business.json"
sticky="top_sticky"
my-toolbar=false
save="saveChanges('custom boxective')">
<menu sticky="items2" name="name" ></menu>
</my-box>
<menu sticky="items2" name="name" ></menu>
角指令::
// add a directive
app.directive("myBox", function($http, $compile) {
return {
restrict : "E",
scope : {
items : '=',
myTitle : '@', // by value
myHeight : '@', // by value
myWidth : '@', // by value
myColor : '@', // by value
myBgcolor : '@', // by value
myWidgetno : '@', // by reference
myTemplate : '@',
/* merge */
sticky: '=sticky',
myToolbar : '@', /* merge */
myUrl : '@',
myCollapseoption : '@', // by reference
save : '&', // event
},
transclude:true,
templateUrl : function(el, attrs) {
return 'generic_widget.html';
},
controller : function($http, $scope, $element, $sce, $templateCache, $compile, $attrs) {
},
replace : false,
link : function(scope, element, attrs) {
element.css("background", attrs.myBgcolor);
element.css("color", attrs.myColor);
element.css("width", attrs.myWidth + 'px');
element.css("height", attrs.myHeight + 'px');
element.find('#jhelp').html('Now trying get jquery help');
}
};
});
app.directive('menu', function() {
return {
//require: '^myBox',
scope:{
name:'@',
sticky:'='},
restrict: 'E',
template: '<h3>{{name}}I am coming from Hello {{sticky}} </h3><div ng-repeat="t in sticky">anam repeat </div>',
link: function(scope, element, attrs ,mybox) {
//console.log('menu scope is '+mybox.sticky);
},
};
});
我不能使用範圍真正的,因爲我想用它與不同的數組,也是$父我不能使用,因爲我需要數組名稱 – anam
是否有任何爲什麼要傳遞數組名與
我不認爲有一種方法可以訪問控制器範圍內的隔離範圍。雖然你可以將$ scope本身傳遞給你的指令。但這不是一個好的做法。 –