how to pass value ember view to controller

喜你入骨 提交于 2019-12-25 15:16:07

问题


I am new in pretty ember js development .

I have done view below code

 {{view  "select"  content=model    prompt="Please select a name"  selectionBinding=""    optionValuePath="content.body" optionLabelPath="content.title"}}

using following Json

posts = [{
    title: "Raja",
    body: "There are lots of à la carte software environments in this world."
}, {
    title: "Broken Promises",
    body: "James Coglan wrote a lengthy article about Promises in node.js."
}];

and Router

App.InRoute = Ember.Route.extend({
    model: function () {    

        return posts;      
    }
});

My Requirement is passing that combo box selected value to controller

App.InController = Ember.Controller.extend({

alert("combobox selected item")
});

And how an i access that value apicontoller in .net mvc 4

 public class ValuesController : ApiController
    {
  string value=    combo box selected value
}

回答1:


Your "select" view's value attribute needs to be bound to a property on the controller:

add the following to your view's attributes: value=selectedItem

In your controller:

Add "selectedItem"

App.InRoute = Ember.Route.extend({

    selectedItem: null,

    model: function () { 
      return posts;      
    }
});

Now your all set to send it to your Api end point. You could create an action handler and make it happen there. Here is a quick example:

App.InRoute = Ember.Route.extend({

   selectedItem: null,

   model: function () {
     return posts;      
   },

  actions: {
     submit: function(){
        $.ajax('/api/yourEndPoint', {type: 'POST', data: {body: this.get('selectedItem')} })
  }
}
});

In your Handlebars template

<button {[action 'submit'}}>Submit</button>

In your .NET API Controller

public IHTTPActionResult Post(string body){
   //.NET's Model Binder will correctly pull out the value of the body keyvalue pair.
   //Now do with "body" as you will.
}

You should really look into using Ember-Data, it's freaking awesome.




回答2:


You only need to set the selectionBinding="someModelAttribute" and the two way data binding will take care of setting the selected value on the model.



来源:https://stackoverflow.com/questions/27062869/how-to-pass-value-ember-view-to-controller

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!