我有一个名为的对象uniqueLists
,如下所示:
$scope.uniqueLists - {
name: [
'string1',
'string2',
'string3'
// Lots of strings
],
Category: [
'string1',
'string2',
'string3'
// Lots of strings
],
designer: [
'string1',
'string2',
'string3'
// Lots of strings
]
}
我正在尝试从此列表中构建搜索功能。目前,我可以像这样在页面上的复选框中显示所有列表项(以下代码使用Jade
Node / ExpressJS的模板引擎,即使您不熟悉它也很容易理解。缩进==子节点上面的线)
div(class="searchNav")
p(ng-repeat="param in searchParams") {{param[0] + ' = ' + param[1]}}
div.row-fluid(ng-repeat="(key,val) in uniqueLists")
form(ng-model="???") {{key}}
label.checkbox(ng-repeat="value in val")
input(type="checkbox", ng-model="?????")
{{value}}
我唯一遇到的问题是ng-model
我的表单和复选框。我想要form
的ng-model == {{key}}
. 我试过设置它,但它破坏了 Angular。我也尝试过ng-model='uniqueLists[index][0]'
,但是再次,Angular 不会解析它,只是将每个表单的模型都设为 string uniqueLists[index][0]
。
同样处理input
复选框,我想要他们的ng-model="{{value}}"
. 有没有办法在我的控制器中做到这一点?我想不出任何可以在ng-repeat
.
给任何偶然发现这个问题的人的小提示
正如您将在下面的答案/小提琴中看到的那样,当您在 an 中引用对象/位置时,ng-model
它们不会在 DOM 中呈现为正确的名称,但它们似乎可以与 Angular 一起使用,就好像它们是一样的。
例如,在上面的代码中,将ng-model="uniqueLists[key][val]"
DOM 中的呈现设置为ng-model="uniqueLists[key][val]"
,但表现得好像是ng-model="uniqueLists[name][string1]"
.
似乎是 Angular 的一个奇怪的怪癖,这让我大吃一惊,因为我在将ng-model
浏览器连接到控制器之前检查了浏览器中的名称,当我看到它没有解析对象以获得正确的值时,我认为它不是工作。