2017-04-03 58 views
0

我創建了一個說明,並在時間stamp.But創造了一個帖子的時候我 提交表單我得到的錯誤沒有處理在ember.js行動「addPost」

沒有處理的行動「addPost 」。如果您確實處理了該操作,則可能是由於從控制器中的操作處理程序返回true導致該操作冒泡而導致此錯誤。 錯誤

這是我的控制器

import Ember from 'ember'; 

export default Ember.Controller.extend({ 
actions: { 
    addPost: function(){ 

     var description = this.get('description'); 

     //Create New Post 
     var newPost = this.store.createRecord('post', { 

      description: description, 

     }); 

     // Save to Database 
     newPost.save(); 

     // Clear Form 
     this.setProperties({ 

      description: '', 

     }); 
    } 
} 
}); 

這是我的模型

import Model from 'ember-pouch/model'; 
import DS from 'ember-data'; 

const { 
    attr, 
    hasMany, 
    belongsTo 
} = DS; 

export default Model.extend({ 
description: DS.attr('string'), 
createdAt: DS.attr('date', { 
defaultValue() { return new Date(); } 
}) 
}); 

這是視圖

<form> 
<lable>Enter the post</lable> 
{{input type="text" value=title }} 
<button {{action 'addPost'}} >post</button> 
</form> 

這是router.js

import Ember from 'ember'; 
import config from './config/environment'; 
const Router = Ember.Router.extend({ 
    location: config.locationType, 
    rootURL: config.rootURL 
}); 
Router.map(function() { 
    this.route('posts', function() { 
    this.route('new'); 
    }); 
}); 
export default Router; 

無法弄清楚什麼是錯誤。

+0

模板名稱爲post/new.hbs,控制器名稱爲post/new.js –

+0

''此代碼位於哪個文件中? – kumkanillam

+0

此代碼是在templates/post/new.hbs –

回答

0

我們應該對模板hbs和控制器js文件都有相同的文件名。假設你的模板是app/templates/login.hbs,那麼相應的控制器就是app/controllers/login.js

如果它是嵌套的,那麼也應該保持相同的層次結構像 app/templates/dashboard/user.hbs相應的控制器將app/controllers/dashboard/user.js

在你的情況,只是確保控制器的文件名是相同的,就像我上面提到以下同層次。

+0

我的模板名稱是post/new.hbs和控制器名稱是post/new.js –

+0

是的,我具有相同的層次結構。 –

+0

看看這個twiddle https://ember-twiddle.com/49ac55a0f153f1be9a5a2b67103e2fce?openFiles=controllers.application.js%2C – kumkanillam