gpt4 book ai didi

javascript - 简单的 Ng-Repeat(不重复)场景指令 TemplateUrl

转载 作者:行者123 更新时间:2023-11-29 19:39:17 24 4
gpt4 key购买 nike

使用简单指令关闭

我有一个简单的闭包,它有几个属性 hello 和 items。当我绑定(bind) hello world 时工作正常,但当我使用 ng-repeat 时列表不呈现。

(function() {
var app = angular.module('safety-plus-task-list', []);

app.directive('taskList', function () {
return {
restrict: "E",
templateUrl: "/Task/TaskList",
scope: {

},
controller: function ($http, $scope, $element, $attrs) {
this.hello = "HELLO WORLD";
this.items = [
"gravida nisl, id fringilla neque ante vel mi.",
"quam gravida nisl, id fringilla neque ante vel mi."];
},
controllerAs: "task"
};
});
})();

代码内部指令

这是用于呈现自定义指令的代码。 hello 变量正确显示,但项目根本没有呈现。如果列表中有一项,它就会显示出来。

{{ task.hello }}
<div ng-repeat="item in task.items">
<div> {{ item }} </div>
</div>

渲染图像

enter image description here

相同的字符串打破循环

这似乎是一种不符合直觉的行为。你自己试试吧。我更改了示例中的一个字母,并按预期呈现了模板。

谁能告诉我为什么会这样?

Example的代码。此代码会产生不同的结果,并且由于某种原因不起作用,除非您添加“$scope”前缀而不是“this”,如 enter link description here .更令人困惑的是,范围版本实际上不会产生本文描述的问题。

最佳答案

ngRepeat 期望 items 是不同的对象(通过 === 进行比较)。
由于字符串是原始字符串,因此 2 个相同的字符串被视为相等/相同。

您可以使用 track by 来指示 ngRepeat 比较其他内容,例如指标:

ng-repeat="item in task.items track by $index"

关于javascript - 简单的 Ng-Repeat(不重复)场景指令 TemplateUrl,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24034430/

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