2015-05-23 32 views
0

嗨,我使用EmberJS在我的應用程序,這是我的應用程序模板,並與應用控制器把手每個助手範圍改變財產

我叫isEditAble在控制器的屬性,但我有一個問題 如果我用於在每個助手外部檢查此屬性,這將執行正常。 但如果我在每個幫助器(isEditAble屬性)範圍內使用內部不看內部,它總是會是假的。

任何人都可以請指導如何使用每個助手內的屬性。

ApplicationTemplate:

//This if executing and textbox is displaying because of isEditAble = true 
    {{#if isEditAble}} 
     <div style="width: 40px;"> 
     {{input type=text disabled=isChecked}} 
     </div> 
    {{/if}} 


{{#each checkBoxes}} 
     //This if is NOT executing and checkboxes is NOT displaying 
     //Even Though is EditAble true 
    {{#if isEditAble}} 
     <div style="width: 40px;"> 
     {{input type=checkbox disabled=isChecked}} 
     </div> 
    {{/if}} 
{{/each}} 

Apllication控制器:

App.ApplicationController = Ember.Controller.extend({ 
    appName: 'Tag Editor', 
    checkBoxes: [ 
    {id: 1, isChecked: true}, 
    {id: 2, isChecked: true}, 
    {id: 3, isChecked: true}, 
    {id: 4, isChecked: true} 
    ], 
    isEditAble: true 
    }); 
+0

可以指定emberjs的哪個版本訪問父上下文? –

+0

我使用的是emberJS 1.5.1 –

回答

4

可以使用block parameters正常範圍值:

{{#each checkBoxes as |cbox|}} 
    {{#if isEditAble}} 
     <div> 
     {{input type="checkbox" checked=cbox.isChecked}} hello 
     </div> 
    {{/if}} 
{{/each}} 

還要注意類型是怎樣包裹在引號(而且我認爲isChecked應該切換checked財產而不是disabled)。

JSbin

編輯:由於您使用的是舊版本V1.5.1,塊參數不可用。您可以通過使用

{{#if ../isEditAble}} 

或根上下文(在這種情況下是一樣的父上下文)與

{{#if @root.isEditAble}} 
+0

我試過使用| cbox |我正在解析錯誤未捕獲錯誤:第7行解析錯誤: ...} {{#每個複選框爲| cBox |}} {{/每個}} –

+0

啊,好吧,v1.5.1。是相當古老的,沒有塊參數。查看我的編輯以訪問舊版本的父級上下文。 –

+0

謝謝{{#if ../isEdittable}}適合我 –