我是一個通用的Angular/JS框架的新手,我試圖讓這個飛機座位數據顯示使用動態模板,但它不是加工。Angular自定義指令中的動態模板(在嵌套的ng重複內)不起作用
我試着按照指南this site但沒有運氣。
這裏是我的html,其中 'row.seats' 是一個對象字面和 'row.rowLetter' 是一個字符串:
<tr ng-repeat="row in rows">
<seat-item ng-repeat="seat in row.seats" thisseat="seat" thisrow="row.rowLetter"></seat-item>
</tr>
這裏是我的指令:
angular.module('myApp.directives', []).directive('seatItem', function($compile) {
var template1 = '<td> {{thisrow}} {{thisseat.price}} </td>',
template2 = '<td> seat unavailable </td>';
var getTemplate = function(thisseat) {
if(thisseat.isAvailable) { // is a boolean property on seat object
return template1;
}
return template2;
}
var linker = function(scope, element, attrs) {
element.html(getTemplate(scope.thisseat)).show();
$compile(element.contents())(scope); // not sure what contents refers to...
}
return {
restrict: 'E',
replace: true,
link: linker,
scope: {
thisseat: '=',
thisrow: '@'
}
}
}
我有我的控制器設置$ scope.rows,但是當我試圖在指令中移動所有這些邏輯時(我最初在我的視圖中使用ng-ifs),它停止工作。從我可以告訴我甚至沒有進入鏈接器功能(儘管我輸入指令)。
任何幫助或資源的鏈接,將不勝感激!
感謝您的評論,但我試圖儘可能抽象我的視圖邏輯。 –
不用擔心,因爲您擁有數據的對象,您可以使用已有數據創建模板,除非需要編輯/綁定 –