首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >链接标签在Emberjs中不起作用

链接标签在Emberjs中不起作用
EN

Stack Overflow用户
提问于 2013-07-17 12:03:10
回答 2查看 79关注 0票数 1

这是模型

代码语言:javascript
复制
App.Store = DS.Store.extend({
   revision: 12,
   adapter: DS.FixtureAdapter
});

App.Markets = DS.Model.extend({
    ids: DS.attr("string"),
    name: DS.attr("string"),
    created: DS.attr("string")
});

App.Markets.FIXTURES = [
    {ids:"312", name:"joy", created:"2012/1/1"},
    {ids:"412", name:"adel", created:"2012/1/2"},
    {ids:"512", name:"john", created:"2012/1/3"}
]; 

App.Sources = DS.Model.extend({
   source_channel: DS.attr("string"),
   handle: DS.attr("handle")
});

App.Sources.FIXTURES = [
    {source_channel:"sc1", handle: "hn1"},
    {source_channel:"sc2", handle: "hn2"}
]; 

这是路线。

代码语言:javascript
复制
var App = Ember.Application.create();

App.Router.map(function() {
    this.resource('markets', {path: '/markets'}, function() {
        this.resource("sources", { path: "/:market_id" });
    });                                                          
});

App.MarketsRoute = Ember.Route.extend({
    model: function () {
        return App.Markets.find();
    }
});

App.SourcesRoute = Ember.Route.extend({
    model: function(){
        return App.Sources.find();
    }
});

这是模板

代码语言:javascript
复制
<script type="text/x-handlebars" id="_sources">
  {{#each sources in content}}
    <span>{{sources.handle}}</span>
    <span>{{sources.sources_channel}}</span>
  {{/each}}

</script>

<script type="text/x-handlebars" id="markets">
    {{#each markets in content }}
        {{#linkTo 'sources' markets.ids class="test" }}<span>Source</span>{{/linkTo}}
        <span>{{markets.name}}</span>
        <span>{{markets.created}}</span>

    {{/each}}

    <div class="sources">
        {{partial "sources"}}
    </div>
</script>  

当我访问/#/markets时,我可以看到市场列表。这是正确的。

焦点在{{#linkTo 'sources' markets.ids class="test" }}Source{{/linkTo}} of markets模板中。

在这里,markets.ids不起作用。当我点击链接时,我想转到/#/markets/markets_id

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-07-17 13:13:24

在将对象传递到linkTo中的sources路由的同时,

App.SourcesRoute中定义serialize方法。

模板:

代码语言:javascript
复制
{{#linkTo 'sources' markets class="test" }}<span>Source</span>{{/linkTo}}

路线:

代码语言:javascript
复制
 App.SourcesRoute = Ember.Route.extend({
    model: function(){
        return App.Sources.find();
    },
    serialize: function(model) {
        return { market_id: model.ids };
    }
});
票数 1
EN

Stack Overflow用户

发布于 2013-07-17 12:10:04

您希望改用linkTo 'sources' markets。即:-将each循环中的模型传递给` `linkTo。

注意:关于您的命名约定。Ember喜欢模型是单数的,而路由/控制器是复数还是单数取决于路由是指向一个还是多个模型。

编辑:澄清。

linkTo更改为以下内容:

代码语言:javascript
复制
{{#linkTo 'sources' markets class="test" }}<span>Source</span>{{/linkTo}}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17690886

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档