gpt4 book ai didi

angularjs - Angular 表行指令未在表内部呈现

转载 作者:行者123 更新时间:2023-12-03 08:49:08 25 4
gpt4 key购买 nike

我正在尝试将“isrcrow”行指令添加到表中,如下所示:

<table class="table">
<thead><tr>
<th>Artist Name</th>
<th>Track Title</th>
<th>Version</th>
<th>Track Duration</th>
<th>Recording Year</th>
<th></th>
</tr>
</thead>
<tbody>
<isrcrow></isrcrow>
</tbody>

</table>

这是指令:
(function() {
var isrcorderapp;

isrcorderapp = angular.module("isrcorderapp", []);

isrcorderapp.controller("isrcordercontroller", function($scope, $http) {
return $scope.recordingTypes = [
{
type: 'Single'
}, {
type: 'Album'
}, {
type: 'Live'
}, {
type: 'Concert'
}, {
type: 'Instrumental'
}
];
});

isrcorderapp.directive("isrcrow", function() {
return {
restrict: 'E',
template: '<tr>\
<td><input id="artist" ng-model="name"/></td>\
<td><input id="track"/></td>\
<td><select id="isrctype" ng-model="isrctype" ng-change="setState(state)" ng-options="s.type for s in recordingTypes" class="ng-pristine ng-valid"></select></td>\
<td><input id="duration"/></td>\
<td><input id="year"/></td>\
<td><input type="button" value="Add ISRC" onclick="AddIsrc()" class="btn btn-small btn-success" />\
<input type="button" value="Delete" onclick="RemoveIsrc()" class="btn btn-small btn-danger" />\
</td>\
</tr>',
scope: {
name: '='
},
link: function(scope, element, attr) {}
};
});

}).call(this);

我遇到的问题是isrcrow指令未在表主体内部呈现。它在表的上方和上方呈现:

有谁知道是什么原因导致这种行为?

最佳答案

添加我的评论摘要作为答案,因为它似乎对OP有所帮助。 :-)

正如GregL所指出的,在以replace: truerestrict: 'E'作为根模板节点的指令中省略<tr>会导致无效的标记,从而导致错误地呈现该行。

但是,对于那些在1.2.13 (romantic-transclusion)之前使用Angular版本的用户,由于已注意到issue,因此该解决方案将不适用。

解决方法是改为使用指令作为属性(即restrict: 'A')并适当修改模板,以使<tr>不再是根模板节点。这将允许使用replace: true

关于angularjs - Angular 表行指令未在表内部呈现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22030080/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com