我有一個指令,一個模板,這個模板裏面我有使用該指令的變量<script>
標籤。AngularJs指令 - <script>內模板
指令:
(function() {
'use strict';
angular
.module('app.components')
.directive('picker', Picker);
/*@ngInject*/
function Picker() {
return {
restrict: 'E',
controller: PickerController,
controllerAs: 'vm',
bindToController: true,
templateUrl: 'picker.html',
transclude: true,
scope:{
inputId: '@'
}
};
/*@ngInject*/
function PickerController() {
/*jshint validthis: true */
var vm = this;
}
}
})();
模板:
<div>
<div>
id: {{vm.inputId}}
<ng-transclude></ng-transclude>
</div>
<script>
console.log({{vm.inputId}});
</script>
</div>
用法:
<picker input-id="myInput"> <!-- something... --> </picker>
的問題是,{{vm.inputId}}內<script>
標籤不已過濾,因此{{vm.inputId}}不會變成「myInput」。一切工作<script>
標籤之外,id: {{vm.inputId}}
變成id: myInput
難道只是不可能把「變量」放在腳本標籤內嗎?
爲什麼你需要一個腳本標記呢?只需使用你的控制器。 – Cerbrus
請顯示scipt標記代碼 –
這個想法是在指令中包裝一個jQuery datepicker,但保持指令或多或少與指向包裹的datepicker耦合。 我把日期選擇器,按鈕等放到模板中,所以我只需要更改模板,如果我想使用另一個日期選擇器庫 但如果我想在一個頁面內多次使用此指令,我必須更改Ids動態和Ids也在腳本標記 – Lusk116