我试图显示使用ember js的下拉列表。使用Ajax GET方法。但是它无法返回任何值。

我对Ajax的要求

这是我的代码:

App.IndexController = Ember.ArrayController.extend({
  model1: function () {
    var Category1 ;
    $.ajax({
      url: 'http://localhost:63951/Home/GetAllCountry',
      type: 'GET',
      datatype: 'application/json',
      async: false,
      success: function (data) {
        alert(data);
        Category1 = data;
      }
    });
    return Category1;
  }.property(),

});


注意
内部控制器警报显示正常。

提醒杰森

[{“ CountryID”:1,“ CountryName”:“美国”}]

在我的html页面中无法获得该值。

js代码在这里

 <script type="text/x-handlebars">
        <h2>Welcome to Ember.js</h2>
        {{outlet}}
    </script>
    <script type="text/x-handlebars" id="index">

        <div>

            {{view  "select"  id="AddProfile_SelectCountry"  content=model1  prompt="Select Country"  optionValuePath="content.CountryName" optionLabelPath="content.CountryName" valueBinding=default }}

            </div>


    </script>

    <script src="js/libs/jquery-1.10.2.js"></script>
    <script src="js/libs/handlebars-v1.3.0.js"></script>
    <script src="js/libs/ember-1.8.1.js"></script>
    <script src="js/appnew.js"></script>
    <!-- to activate the test runner, add the "?test" query string parameter -->

最佳答案

当您执行Category1 = data;时,会将变量标签Category1设置为数据值。您要做的是更改该标签引用的对象。

最好将Category1设为Ember对象,并通过数据设置其属性。像这样:

        model1: function () {
        var Category1 = Ember.Object.create();
        $.ajax({
                    url: 'http://localhost:63951/Home/GetAllCountry',
                    type: 'GET',
                    datatype: 'application/json',
                    async: false,
                    success: function (data) {
alert(data)
                        Category1.setProperties(data);
                   }
        });
        return Category1;
            }.property(),


如果您的数据是以数组形式输入的,但是您只想要第一个元素(如上所示),则可以改为Category1.setProperties(data[0]);

09-07 17:23