EmberJS - 每个页面都有一个没有路由器的控制器

时间:2013-10-02 19:24:58

标签: javascript asp.net-mvc ember.js

我正在尝试使用ASP.NET MVC开发EmberJS应用程序。我找到了SPA模板(感谢开发人员,它真棒!),但我想做一个不同的方法。相反,SPA(单页面应用程序)方法,我想使用ASP.NET路由和页面,就像一个commmon ASP.NET MVC应用程序。问题是:我想在每个新页面中添加一个引用控制器的<script>标签将在该页面中使用,你知道吗?

类似的东西:

共享页面包含对EmberJS的主要引用(app.js包含EmberJS的初始化):

<html>
    <head>
    ...EmberJS reference blahblah...
    </head>
    ...
    <body>
        @RenderBody()
    </body>

    <script type="text/javascript" src="@Url.Content("~/Scripts/EmberJS/app.js")" />
</html>

好吧,假设我要创建一个Customer页面。我知道我必须创建一个CustomerController来处理页面。我们假设我也会创建一个CustomerController.js文件。

App.CustomerController = Ember.Controller.extend({
    customers: [],
    ...
});

然后,我将创建一个Customer.cshtml,它将显示有关客户的操作的页面。我想做上面这样的事情:

<ul>
{{#each customer in controller.customers}}
    <li>{{customer.name}}</li>
{{/each}}
</ul>

...
<script type="text/javascript" 
    src="@Url.Content("~/Scripts/EmberJS/Controllers/CustomerController.js")" />

所以,我需要一种方法来将我添加了<script>标签的Controller同步到我的页面,并使控制器可以理解为页面。

  1. 这可能吗?
  2. 如果是,我如何将CustomerController链接到我想要的任何页面?我需要使用View或其他东西吗?
  3. 谢谢你,伙计们!

1 个答案:

答案 0 :(得分:1)

Ember专为创建单页应用而设计。如果您不想创建SPA,您应该考虑使用除Ember之外的其他东西。