2013-10-25 103 views
0

我是Emberjs的初学者,请仔细阅读代码,并指导我在哪里错了。Emberjs存储错误 - 未捕获TypeError:对象[对象对象]没有方法'trasitionTo'

js文件

Sample = Ember.Application.create(); 


Sample.Router.map(function(){ 
    this.route('view'); 
    this.resource('add'); 
}) 
Add = Ember.Object.extend(); 
View = Ember.Object.extend(); 

Sample.AddNewRoute = Ember.Route.extend({ 
    model:function(){ 
     return Sample.Add.createRecord(); 
    } 
}); 

Sample.ViewController = Ember.ArrayController.extend(); 
Sample.AddController = Ember.ObjectController.extend({ 
    content:[], 
    save:function(){ 
     this.get("model.transaction"); 
     this.get("target").trasitionTo('view'); 
    } 
}); 

Sample.ViewController = Ember.ArrayController.extend(); 

Sample.Store = DS.Store.extend({ 
    revision:11, 
    adapter: DS.LSAdapter.create(), 
}); 

Sample.Add = DS.Model.extend({ 
    name: DS.attr("string"), 
    desig: DS.attr("string"), 
    age: DS.attr("integer") 
}); 

.html file 

<!DOCTYPE html> 
<html> 
<head> 
<script type="text/javascript" src="C:/Users/Guest/Downloads/ember/starter-kit-1.0.0/js/libs/jquery-1.9.1.js"></script> 
     <script type="text/javascript" src="C:/Users/Guest/Downloads/ember/starter-kit-1.0.0/js/libs/handlebars-1.0.0.js"></script> 
     <script type="text/javascript" src="C:/Users/Guest/Downloads/ember/starter-kit-1.0.0/js/libs/ember-1.0.0.js"></script> 
     <script type="text/javascript" src="C:/Users/Guest/Downloads/ember/starter-kit-1.0.0/js/libs/ember-data.js"></script> 
     <script type="text/javascript" src="C:/Users/Guest/Downloads/ember/starter-kit-1.0.0/js/libs/localstorage_adapter.js"></script> 
     <script type="text/javascript" src="C:/Users/Guest/Downloads/ember/starter-kit-1.0.0/js/sample.js"></script> 

<meta charset=utf-8 /> 
<title>Demo application</title> 
</head> 
<body> 

    <script type="text/x-handlebars"> 
    <h1>Welcome to Demo!</h1> 
    {{#link-to 'add'}}Add Member{{/link-to}} 
    {{#link-to 'view'}}View Members{{/link-to}} 
    {{outlet}} 
    </script> 

    <script type="text/x-handlebars" data-template-name ='add'> 

    <h1>Add member!</h1> 
    <form {{action 'save' on='submit'}}> 

    <br>{{#view Ember.TextField valueBinding="name" placeholder= "Enter the name"}}{{/view}}</br> 
    <br>{{#view Ember.TextField valueBinding="desig" placeholder= "Enter the designation"}}{{/view}}</br> 
    <br>{{#view Ember.TextField valueBinding="age" placeholder= "Enter the age"}}{{/view}}</br> 
    <br><button {{action "save"}}>Add Member</button></br> 

    </form> 

    </script> 

    <script type="text/x-handlebars" data-template-name ='view'> 
    <h3><strong>All Registered Members!</strong> 
    <br></br> 
    {{#each controller}} 

    <br>{{name}}</br> 
    <br>{{desig}}</br> 
    <br>{{age}}</br> 
    {{else}} 
    No members registered yet! :(

    {{/each}} 

    </script> 

    enter code here 

</body> 
</html> 

后,我点击“添加成员按钮,我收到以下错误:

遗漏的类型错误:对象的翻译:有没有方法‘trasitionTo’

回答

0

您有记录添加它用于处理点击的记录。你可以重新命名添加记录到别的东西吗?

Add = Ember.Object.extend();//use someother name instead of Add 

取而代之的是将它命名为MyAddRecord或别的东西。一旦你这样做,你应该会得到正确或相关的错误信息。

+0

这里有两件事:1.记录2.资源。在您的原始代码中,您将记录和资源命名为“添加”,并导致此问题。我的建议是将记录名称更改为其他名称。你不需要改变路线等... – VNarasimhaM

+0

我改变了添加到添加成员。 AddMember = Ember.Object.extend(); ViewMember = Ember.Object.extend(); Sample.AddMemberNewRoute = Ember.Route.extend({ 模型:函数(){ 返回Sample.AddMember.createRecord();} }); Sample.ViewMemberController = Ember.ArrayController.extend(); ()); this.get('router.target')。'trasitionTo('); '; } }); 但我得到了-Uncaught错误:虽然我在控制器中定义了方法,但没有处理事件'save'error – user2730628

相关问题