首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >动态ng-init - Angularjs

动态ng-init - Angularjs
EN

Stack Overflow用户
提问于 2015-11-05 11:59:57
回答 1查看 621关注 0票数 0

我拿到了这个:

代码语言:javascript
复制
<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>

我需要创建一个“模型”来知道是否选中了复选框(我不能使用ng模型,因为这是一种糟糕的实践)。所以,我正试着检查一下。如果我不能初始化的话,吴检查就不能工作了。我想试一试,因为这是我唯一读到的。

我在类似的帖子里读过一些关于ng-init的文章,但是我无法理解,因为我在这个世界上是如此的新。

“您需要使用[]符号来访问动态属性,而不是使用. notation。”

在这个例子中,我如何做到这一点?

这是我的.Json:

代码语言:javascript
复制
$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" : [] }
]}];

我想将每个复选框与他的子主题链接起来,然后我想看看是否通过ng-checked = "{{d.subtopic}}Checkbox"选中了复选框。

现在我的问题是"{{d.subtopic}}Checkbox"没有初始化,这就是为什么我需要使用ng-init。

这里的问题是ng-init不理解{{}),所以我不知道如何解决这个问题:'{{d.subtopic}}Checkbox = true'

最后,我只想得到一个动态$scope,例如:

代码语言:javascript
复制
var cad = subtopic+"Checkbox";

  if($scope[cad] === true){ [...]
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-11-05 12:40:01

这就是你想要达到的目标吗?

代码语言:javascript
复制
<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>

还是这个?

代码语言:javascript
复制
    <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>

柱塞实例

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33543989

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档