热动力 - Angularjs
Dynamic ng-init - Angularjs
我知道了:
<ul id="filterList">
<div ng-repeat="data in dataForTheTree">
<li> {{data.topic}} </li>
<ul id={{data.topic}}Son>
<li ng-repeat="d in data.children>
<input type="checkbox" ng-init='{{d.subtopic}}Checkbox = true' ng-checked = "{{d.subtopic}}Checkbox"/>{{d.subtopic}}
</li>
</ul>
</div>
</ul>
我需要创建一个 "model" 来知道复选框是否被选中(我不能使用 ng-model,因为这是一种不好的做法)。所以,我正在尝试使用 ng-checked。
如果我不能初始化它,ng-checked 将不起作用。我想尝试使用 ng-init,因为这是我唯一读到的内容。
我在类似的地方读过一些关于 ng-init 的文章 post,但我无法理解,因为我对这个世界太陌生了。
"You need to access dynamic properties using [] notation instead on . notation"
在这个例子中我该怎么做?
这是我的。Json:
$scope.dataForTheTree =[
{ "topic" : "Legislation", "children" : [
{ "subtopic" : "Education", "texto" : "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec vitae tincidunt mi. Donec purus ligula, tincidunt ut semper eu, laoreet.", "children" : [] },
{ "subtopic" : "HealthService", "texto" : "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec vitae tincidunt mi. Donec purus ligula, tincidunt ut semper eu, laoreet.", "children" : [] },
{ "subtopic" : "Assets", "texto" : " Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec vitae tincidunt mi. Donec purus ligula, tincidunt ut semper eu, laoreet.", "children" : [] },
{ "subtopic" : "LiquidAssets", "texto" : "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec vitae tincidunt mi. Donec purus ligula, tincidunt ut semper eu, laoreet.", "children" : [] },
{ "subtopic" : "Education", "texto" : "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec vitae tincidunt mi. Donec purus ligula, tincidunt ut semper eu, laoreet.", "children" : [] },
{ "subtopic" : "HealthService", "texto" : " Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec vitae tincidunt mi. Donec purus ligula, tincidunt ut semper eu, laoreet.", "children" : [] },
{ "subtopic" : "HealthService", "texto" : "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec vitae tincidunt mi. Donec purus ligula, tincidunt ut semper eu, laoreet.", "children" : [] }
]}];
我想 link 每个复选框都有他的子主题,然后我想看看复选框是否通过 ng-checked = "{{d.subtopic}}Checkbox"
被选中。
现在我的问题是 "{{d.subtopic}}Checkbox"
没有初始化,这就是我需要使用 ng-init 的原因。
这里的问题是ng-init不理解{{}},所以不知道怎么解决:'{{d.subtopic}}Checkbox = true'
最后我只想得到一个动态的 $scope,例如:
var cad = subtopic+"Checkbox";
if($scope[cad] === true){ [...]
这是您要实现的目标吗?
<ul id="filterList">
<div ng-repeat="data in dataForTheTree">
<li> {{data.topic}} </li>
<ul id="{{data.topic}}Son">
<li ng-repeat="d in data.children">
<input type="checkbox" ng-init='d.Checked = true' ng-model="d.Checked" />
{{d.subtopic}}
<span ng-if="d.Checked">{{d.texto}}</span>
</li>
</ul>
</div>
</ul>
或者这个?
<li ng-repeat="d in data.children">
<input type="checkbox" ng-init="$scope[d.subtopic+'Checked'] = true"
ng-model="$scope[d.subtopic+'Checked']" />
{{d.subtopic}}
<span ng-if="$scope[d.subtopic+'Checked']">{{d.texto}}</span>
</li>
我知道了:
<ul id="filterList">
<div ng-repeat="data in dataForTheTree">
<li> {{data.topic}} </li>
<ul id={{data.topic}}Son>
<li ng-repeat="d in data.children>
<input type="checkbox" ng-init='{{d.subtopic}}Checkbox = true' ng-checked = "{{d.subtopic}}Checkbox"/>{{d.subtopic}}
</li>
</ul>
</div>
</ul>
我需要创建一个 "model" 来知道复选框是否被选中(我不能使用 ng-model,因为这是一种不好的做法)。所以,我正在尝试使用 ng-checked。 如果我不能初始化它,ng-checked 将不起作用。我想尝试使用 ng-init,因为这是我唯一读到的内容。
我在类似的地方读过一些关于 ng-init 的文章 post,但我无法理解,因为我对这个世界太陌生了。
"You need to access dynamic properties using [] notation instead on . notation"
在这个例子中我该怎么做?
这是我的。Json:
$scope.dataForTheTree =[
{ "topic" : "Legislation", "children" : [
{ "subtopic" : "Education", "texto" : "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec vitae tincidunt mi. Donec purus ligula, tincidunt ut semper eu, laoreet.", "children" : [] },
{ "subtopic" : "HealthService", "texto" : "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec vitae tincidunt mi. Donec purus ligula, tincidunt ut semper eu, laoreet.", "children" : [] },
{ "subtopic" : "Assets", "texto" : " Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec vitae tincidunt mi. Donec purus ligula, tincidunt ut semper eu, laoreet.", "children" : [] },
{ "subtopic" : "LiquidAssets", "texto" : "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec vitae tincidunt mi. Donec purus ligula, tincidunt ut semper eu, laoreet.", "children" : [] },
{ "subtopic" : "Education", "texto" : "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec vitae tincidunt mi. Donec purus ligula, tincidunt ut semper eu, laoreet.", "children" : [] },
{ "subtopic" : "HealthService", "texto" : " Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec vitae tincidunt mi. Donec purus ligula, tincidunt ut semper eu, laoreet.", "children" : [] },
{ "subtopic" : "HealthService", "texto" : "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec vitae tincidunt mi. Donec purus ligula, tincidunt ut semper eu, laoreet.", "children" : [] }
]}];
我想 link 每个复选框都有他的子主题,然后我想看看复选框是否通过 ng-checked = "{{d.subtopic}}Checkbox"
被选中。
现在我的问题是 "{{d.subtopic}}Checkbox"
没有初始化,这就是我需要使用 ng-init 的原因。
这里的问题是ng-init不理解{{}},所以不知道怎么解决:'{{d.subtopic}}Checkbox = true'
最后我只想得到一个动态的 $scope,例如:
var cad = subtopic+"Checkbox";
if($scope[cad] === true){ [...]
这是您要实现的目标吗?
<ul id="filterList">
<div ng-repeat="data in dataForTheTree">
<li> {{data.topic}} </li>
<ul id="{{data.topic}}Son">
<li ng-repeat="d in data.children">
<input type="checkbox" ng-init='d.Checked = true' ng-model="d.Checked" />
{{d.subtopic}}
<span ng-if="d.Checked">{{d.texto}}</span>
</li>
</ul>
</div>
</ul>
或者这个?
<li ng-repeat="d in data.children">
<input type="checkbox" ng-init="$scope[d.subtopic+'Checked'] = true"
ng-model="$scope[d.subtopic+'Checked']" />
{{d.subtopic}}
<span ng-if="$scope[d.subtopic+'Checked']">{{d.texto}}</span>
</li>