Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ember.js 访问在{{each}}迭代器中创建的子视图的属性_Ember.js - Fatal编程技术网

Ember.js 访问在{{each}}迭代器中创建的子视图的属性

Ember.js 访问在{{each}}迭代器中创建的子视图的属性,ember.js,Ember.js,编辑:问题在于我自己的本地设置和在应用程序中包含视图的方式。一旦我解决了这些问题,问题就解决了。这里的代码实际上是正确的。克里希安提供的答案也很有用 我被一件似乎很简单的事情缠住了。我想访问在把手中的每个循环中构造的视图的一些计算属性 <div class='build-buttons-wrapper'> <button class="list-builds-button" {{action "toggleBuildsList" target="view"}} >&l

编辑:问题在于我自己的本地设置和在应用程序中包含视图的方式。一旦我解决了这些问题,问题就解决了。这里的代码实际上是正确的。克里希安提供的答案也很有用

我被一件似乎很简单的事情缠住了。我想访问在把手中的每个循环中构造的视图的一些计算属性

<div class='build-buttons-wrapper'>
  <button class="list-builds-button" {{action "toggleBuildsList" target="view"}} ></button>
  <button class="build-button" {{action "buildApp" on="click" target="view"}} >Build</button>
</div>
<div class='builds-list'>
  <h2 class="build-title">Latest builds</h2>
  <ul class="builds-list">
  {{#each content}}
    {{#view Jimux.BuildView buildBinding="this"}}
      <span class="build-date">{{createdAt}}</span>
      <a {{bindAttr href="srcArchive"}} class="download-button source">Source</a>

      {{! *here are different ways I have tried to access "finished" property* }}
      {{log build.view.finished}}
      {{log view.finished}}
      {{log finished}}
      {{log this.finished}}
      {{log build.finished}}

      {{#if build.finished}}
        <div class="build-progressbar"></div>
      {{else}}
        <div class="build-progressbar"><div class="build-percent" style="width:{{unbound percent}}%"></div></div>
      {{/if}}
    {{/view}}
  {{/each}}
  </ul>
</div>
这是在上面模板中的{{each}}迭代器内创建的BuildView

Jimux.BuildView = Ember.View.extend(
  tagName: 'div',
  classNames: ['build-item'],
  #testBinding: true,
  sample: true,
  finished: ( ->
    return true
    #return (@get 'percent') == 100
  ).property('percent')
)
以上各项工作如预期。例如,我可以使用{{percent}访问每个子视图的percent属性。但是,如果我在Jimux.BuildView中定义自己的属性(如上所示),我似乎找不到在handlebar{{{each}}迭代器中访问它们的方法。您可以看到我在handlebar代码中使用{{log}}语句尝试过的不同方式,所有这些打印都未在控制台中定义。我在这里遗漏了什么?

我假设您所引用的百分比属性是您正在循环的每个内容对象的属性-如果是这样的话,请如下所示:

finished: (->
    return @get('context.percent') is 100
).property('context.percent')
您应该能够简单地在{{view Jimux.BuildView}中使用{{finished}}。。{{/view}}block

我假设您引用的percent属性是您循环的每个内容对象的属性-如果是这种情况,请将finished如下所示:

finished: (->
    return @get('context.percent') is 100
).property('context.percent')

您应该能够简单地在{{view Jimux.BuildView}中使用{{finished}}。。{{/view}}block

您正在运行哪个版本的handlebar/emberjs?@jonnii handlebar.version=1.0.rc.1;你认为这与这个问题有关吗?你正在运行哪个版本的handlebar/emberjs?@jonnii handlebar.version=1.0.rc.1;你认为这与这个问题有关吗?+1感谢阅读我的长篇帖子,谢谢你的回复!我应该把这个完成的计算属性放在哪里?在BlocksView中,哪个有模板,或者在模板中实例化的BlockView,或者其他地方?好吧,很难承认,但我犯了一个愚蠢的错误。我的原始代码是正确的。您的代码也按预期工作。感谢您花时间回答,并为虚惊一场表示歉意+感谢您阅读我的长篇帖子,感谢您的回复!我应该把这个完成的计算属性放在哪里?在BlocksView中,哪个有模板,或者在模板中实例化的BlockView,或者其他地方?好吧,很难承认,但我犯了一个愚蠢的错误。我的原始代码是正确的。您的代码也按预期工作。感谢您花时间回答,并为虚惊一场表示歉意!