如果我使用$範圍,該指令完美的作品:如何在角度指令中訪問隔離的'this'作用域?
function alertBox(){
return {
template:
'<div ng-show="alert" class="alert alert-{{alert.type}}" style="text-align: center;">\
<a href="#" class="close" data-dismiss="alert" aria-label="close" title="close">x</a>\
<span ng-bind-html="alert.message | safe_html"></span>\
</div>'
}
}
警報是在我的控制器定義爲:
$scope.alert = {message: 'test!', type: 'danger'};
而且我簡單的觀點:
<div alert-box></div>
然而,我不使用$ scope,而是使用'this'定義我的警報:
this.alert = {message: 'test!', type: 'danger'};
但無論我嘗試什麼,我都無法弄清楚如何在指令中注入'this'的值。
理想我想能夠引用「self.alert」什麼的,所以我沒有將其定義爲一個屬性範圍的情況下,但假設我這樣做,我已經試過這種變化無濟於事:
function alertBox(){
return {
scope: {
scope: '=scope'
},
template: '<div ng-show="' + scope + '.alert" class="alert alert-' + scope + '.type" style="text-align: center;"><a href="#" class="close" data-dismiss="alert" aria-label="close" title="close">x</a> <span ng-bind-html="' + scope + '.message | safe_html"></span></div>'
}
}
而且我的html:
<div alert-box scope="welcome"></div>
在那個例子我有'WelcomeController as welcome'
定義。
任何幫助表示讚賞。
你能後的一個工作版本帶有問題的示例代碼,某處像StackOverflow片段,Plunker,JSFiddle? –
當然,如果我沒有得到一個快速的答案,我會跟進一個工作的例子。看起來像一個簡單的問題,但不是? –
@FloydPink這裏是一個小提琴,展示了我想要實現的目標:http://jsfiddle.net/jgentes/s58chtsv/1/ –