0

我目前正在从 Knockout 切换到 Angular。我现在遇到的主要问题是将我的原始模板转移到 Angular 可以识别的东西上。

具体来说,这里有一些我在传输时遇到问题的代码:

<!-- ko template: { name: 'SquareTempl', data: Squares[5] } --><!-- /ko -->

在 Knockout 中,这会将 Squares[5] 附加到 SquareTempl,以便在渲染模板时,它会使用 Squares[5] 中的成员(或附加的任何数据)进行渲染。

我需要对 Squares[0]~Squares[11] 重复该过程。不过我不能使用 ng-repeat,因为我不会按数字顺序遍历它们。

理想情况下,如果我能做一些类似的事情就好了

<td class="Square" id="five" ng-include src="'SquareTempl.html'" ng-data="Squares[5]">

有任何想法吗?

这是我写的一个 JSFiddle,概述了我尝试使用 ng-model 的失败尝试。

http://jsfiddle.net/fZz3W/9/

4

1 回答 1

2

两件事:首先,您可以通过自己实现来使 ng-data 可用。YourApp.directive("ngData", function() {})其次,您是否需要 HTML 成为另一个文件的一部分?一个简单的方法来完成你在 Angular 中寻找的东西是ng-repeat这样的:

<td ng-repeat="item in Square">
    <div>{{item.name}}</div> 
</td>

Square数组更新时,将发布一个额外的帖子。

查看修改后的 JSFiddle:http: //jsfiddle.net/TdWMF/1/

所以这主要是实现你想要的东西,直到我可以为你提供更好的解决方案:

使用混合顺序的第二次更新:http ng-repeat: //jsfiddle.net/TdWMF/3/

基本上:

<div ng-repeat="index in [4, 2, 0, 3, 1]">
   square index: {{index}}<br />
   square: {{Squares[index]}}
</div>

我知道,非常丑陋,不理想。我还建议在函数中执行 order 数组生成,然后执行:ng-repeat="index in displayOrder(Squares)"

于 2013-04-09T02:55:33.237 回答