gpt4 book ai didi

javascript - Angular Directive(指令)表行问题

转载 作者:可可西里 更新时间:2023-11-01 01:26:53 25 4
gpt4 key购买 nike

我是一名初学者 Angular 程序员,但我真的很接近理解这些指令。

我创建了一个 fiddle here ,但是我以前从来没有用过fiddle,而且不太会渲染...

tr-row 是一个指令。我试图遍历数据,并为每条记录打印一个指令(行)。HTML:

<table ng-controller="fiddleCtrl">
<thead>
<th>id</th>
<th>name</th>
<th>description</th>
</thead>
<tbody>
<tr><tr-row ng-repeat="d in data" scdata="d"></tr-row></tr>
</tbody>
</table>

脚本:

var myapp = angular.module('myApp', [])
.controller('fiddleCtrl', ['$scope', function ($scope) {

$scope.data = [
{ id: 1, name: 'Fred', description: 'not the best worker' },
{ id: 2, name: 'Wilma', description: 'Freds Wife'},
{ id: 3, name: 'Barney', description: 'Freds best friend'},
{ id: 4, name: 'Louise', description: 'Never heard of Fred'},
{ id: 5, name: 'Tracy', description: 'Some Chick'},
{ id: 6, name: 'Foo', description: 'Inventer of bar'}
];
}]).directive('trRow', function ($compile) {
return {
restrict: "E",
replace: true,
link: function (scope, element, attrs) {
scope.id = scope.d.id;
scope.name = scope.d.name;
scope.desc = scope.d.description;

var tmpl = '<tr ><td>{{id}}</td><td><strong>{{name}}</strong></td><td>{{desc}}</td></tr>';
element.html(tmpl).show();
//var e =$compile(tmpl)(scope);
//element.replaceWith(e);
var e = $compile(element.contents())(scope);
},
scope: {
d: "="
}
};
});

应该很容易。 (叹息)

任何帮助将不胜感激,我真的需要理解这一点。

我的代码中发生的事情是 tr-row 指令替换了表格。我得到了他们的名单,(有一个 tr INSIDE 的 tr-row 元素,但没有表格来显示它们。我知道这意味着我很接近,但我想不出任何新的组合来尝试。

我只需要一个包含行的简单表格。

如果这个问题被问了一百万次,我深表歉意,我似乎不确定要搜索什么。我已经尝试了很多东西。

最佳答案

首先,标签名称不能包含破折号。所以你不能将 tr-row 用作标签名,但你可以将它用作属性。

然后,你可以简单地写一个这样的指令:

.directive('trRow', function () {

return {
template: '<tr><td ng-bind="row.id"></td><td><strong ng-bind="row.name"></strong></td><td ng-bind="row.description"></td></tr>'
};
});

用法是这样的:

<tbody>
<tr tr-row ng-repeat="row in data"></tr>
</tbody>

fiddle 中的一个工作示例:http://jsfiddle.net/T7k83/85/

关于javascript - Angular Directive(指令)表行问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18559271/

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