一般来说,我是 Angular/JS 框架的新手,我正试图让这个飞机座位数据显示使用动态模板,但它不起作用。
我尝试按照此站点上的指南进行操作,但没有运气。
这是我的 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)它停止工作。据我所知,我什至没有进入链接器函数(尽管我正在输入指令)。
任何帮助或资源链接将不胜感激!