2012-08-16 44 views
2

http://jsfiddle.net/ACzaJ/7/ 這小提琴中存在以下問題:Emberjs表單,提交功能和動作助手錯誤

  1. 當您點擊:「明確的完成按鈕」,你將得到錯誤:

    Uncaught Error: assertion failed: Target <Ember.View:ember116> does not have action clearCompletedTodos 
    
        And this line generates that error: 
    <button {{action clearCompletedTodos target="Todos.todosController" }} > 
         Clear Completed Todos 
        </button> 
    
  2. 我正在試驗兩種不同的提交功能,每次評論一個試一下:

    2a。當我點擊'添加'按鈕,當使用第一個提交功能通過註釋第二個時,沒有新的待辦事項被添加並且沒有錯誤。這沒什麼大事。

    2b。當我註釋掉先提交功能,並使用第二提交功能,點擊添加,將引發以下錯誤:

    Uncaught TypeError: Cannot call method 'createTodo' of null. 
    

我怎樣才能使這個待辦事項應用程序,運行以及添加和明確的待辦事項。由於

UPDATE

問題1現在由@pauldechov解決。但問題2a和2b尚未解決。 jsfiddle鏈接已更新。謝謝@pauldechov。這裏

更新2

由彼得提供的解決方案以後有問題,彼得在這裏解決的新問題:

Previously working emberjs1.0-pre form on jsfiddle returns "error": "Please use POST request"

+1

App.todoController是一個錯字(原始定義)。應該像所有的引用一樣App.todosController。 – dechov 2012-08-17 01:39:03

+0

@pauldechov謝謝。這個固定的問題1,但問題2a和2b中的問題仍然存在。你對這些有什麼建議嗎?再次感謝。 – brg 2012-08-17 07:29:32

回答

5

首先,它看起來像你給你的TodoView其中有空格的id。這id需要是一個有效的HTML標識,所以肯定會導致一些問題。其次,submit函數正在爲您的實例TodoFormView尋找值。但是,該值在您的TodoView實例中定義。你需要在兩者之間建立一個綁定。

現在我通過擺脫TodoView而簡化了一些事情,只是使用標準TextField。此外,您的remaining功能需要更改爲get('length'),而不是get(length)。另外,複選框API已經從一些較舊的示例改變,參見http://docs.emberjs.com/#doc=Ember.Checkbox

下面是更新小提琴:http://jsfiddle.net/wagenet/ACzaJ/8/

+0

謝謝,我很感激。 – brg 2012-08-17 15:38:42

+0

而不是使用此解決方案中提供的jsfiddle(以後有問題),請參閱如何在Peter的幫助下解決這些問題** http://stackoverflow.com/questions/12150929/previously-working-emberjs1-0-預外形上的jsfiddle-返回錯誤,請使用 – brg 2012-08-29 11:01:59