我正在尝试编写我的第一个Ember
应用,并且根本不确定我在做什么。我在ASP MVC 4项目中执行此操作,我希望能够单击“代理”菜单选项卡,并让Ember从Agent
控制器中获取相关信息。
当我认为我已正确设置此设置时,因为当我点击“代理”菜单项时,我收到以下错误:
“加载路线时出错”
同样,这是我第一次尝试Ember,所以我认为这意味着正在尝试ajax调用,所以我已经正确地路由了这个,但Razor语法没有被正确翻译。
App = Ember.Application.create();
App.Store = DS.Store.extend({
adapter: 'DS.FixtureAdapter'
});
App.Router.map(function () {
this.resource('home', { path: "/Index" });
this.resource('agents', { path: "/Agents" });
this.resource('topics', function() {
this.resource('topic', {path: '/topic/:topic_id'})
});
this.resource('contacts', { path: "/Contacts" });
});
App.AgentsRoute = Ember.Route.extend({
model: function () {
return App.Store.all();
}
})
App.Store.reopenClass({
all: function () {
return $.ajax({
type: 'GET',
data: {id: '1'},
url: '@Url.Action("GetAgentData", "Agent")',
sucess: function (data) {
return data;
}
});
}
});
修改
此处的每个请求是我layout.cshtml
页面中的句柄代码。
<nav>
<script type="text/x-handlebars">
<div class="navbar">
<div class="navbar-inner">
<ul id="menu">
<li>{{#linkTo 'home'}}Home{{/linkTo}}</li>
<li>{{#linkTo 'agents'}}Agents{{/linkTo}}</li>
<li>{{#linkTo 'topics'}}About{{/linkTo}}</li>
<li>{{#linkTo 'contacts'}}Contact{{/linkTo}}</li>
</ul>
</div>
</div>
{{outlet}}
</script>
</nav>