簡體   English   中英

Ember.js查看與控制器綁定的值

[英]Ember.js view value to controller binding

假設我有一個this.controllerapplication_controllerview ,那么如何將該視圖的value綁定到another_controller 視圖是一個TextField

視圖(此視圖的上下文中有一個application_controller):

CellarRails.SearchTextField = Ember.TextField.extend({
  templatename: 'index',
  insertNewline: function(){
    this.get('controller').transitionToRoute('search');
  }
});

搜索控制器:

CellarRails.SearchController = Ember.ArrayController.extend({
  content: [],
  query: ''
});

搜索路線(在這里,我獲取要綁定到視圖的搜索控制器的查詢屬性):

CellarRails.SearchRoute = Ember.Route.extend({
  serializeParams: function(controller) {
    return {
      query: controller.get('query')
    };
  },
  setupController: function(controller, context, params) {
    console.log(params);
    controller.set('context', CellarRails.Track.find(params));
  }
});

我可以擴展應用程序控制器並添加needs: 'search' ,以便執行this.controller.search.get('query')以獲得搜索控制器的查詢屬性嗎?

您幾乎自己回答了這個問題,這是最后一點。

添加需求后,您可以執行以下操作:

this.get('controllers.search').get('query');

希望能幫助到你。

只是一些注意事項,是的,您可以擴展應用程序控制器並添加需求搜索

 CellarRails.ApplicationController = Ember.Controller.extend({
    needs: ['search'],
    someMethod: function(){
      // this would be the query property from the search controller
      var query = this.get('controllers.search.query');
    }
 });

另外,也許這部分對您有用,如果是的話,請忽略我,但我不相信setupController掛鈎具有3個參數。

  setupController: function(controller, model) {
    controller.set('model', model);
       or
    this._super(controller, model);
  }

模型掛鈎是獲取參數的那個,並且ember將其傳遞給設置控制器

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM