【发布时间】:2014-06-19 19:15:10
【问题描述】:
我的应用程序中有此代码:
$scope.appendBets = function()
{
$.each($scope.phaseBets, function(i, bet)
{
var betElement = angular.element('<div ng-model="phaseBets[i]">Bet id: {{phaseBets[i].id}}</div>');
angular.element(document.querySelector('#betsHolder')).append(betElement);
$compile(betElement)($scope);
});
}
$scope.phaseBets 是从 $http.get 加载的。
现在的问题是在 html 页面上没有看到 {{phaseBets[i].id}} 内容,我得到了这个 Bet id:。
我见过this OS,但它对我不起作用,可能是因为数组。 我的代码有什么问题吗?
注意
问题是,我将创建一个元素(每个 id 都不同),所以 ng-repeat 不会帮助那个笨蛋。
【问题讨论】:
-
停止使用
jQuerysappend(或AngularJS的精简版)并开始使用ng-repeat。它与某人已经想到这个问题并为您处理它的附加值完全相同。 (我一直在广泛使用 AngularJS,来自 jQuery 背景,大约一个月后发现我不再需要这种手动 DOM 操作) -
所以使用
ng-include(docs.angularjs.org/api/ng/directive/ngInclude) 根据每个不同的 ID 构建模板 URL。 - 请相信我们这一点:stop 尝试以 jQuery 方式执行此操作,并以 AngularJS 方式处理它。这需要一些时间,您会阅读/提出很多关于 Stack Overflow 的问题,但值得您花时间。 -
谢谢@Sergiu Paraschiv,这就是我问的原因。如果我需要为每个 id 包含不同的 html,我将如何使用 nginclude。
-
我还看到您使用的是
ng-model。它仅适用于input节点。
标签: javascript html angularjs