Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/399.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 不使用余烬数据的余烬JS_Javascript_Jquery_Ajax_Ember.js_Frameworks - Fatal编程技术网

Javascript 不使用余烬数据的余烬JS

Javascript 不使用余烬数据的余烬JS,javascript,jquery,ajax,ember.js,frameworks,Javascript,Jquery,Ajax,Ember.js,Frameworks,我一直想实现一种方法,在不使用余烬数据的情况下正确处理数据传输 我目前有一个Java后端,可以正确处理“获取”和“发布”数据 这是我的结构。假设我们使用系统中处理配置的一部分 这是我的模型: App.ConfigurationRoute = Ember.Route.extend({ model: function(params) { return App.Store.configuration('getConfig'); } }); 这是我的控制

我一直想实现一种方法,在不使用余烬数据的情况下正确处理数据传输

我目前有一个Java后端,可以正确处理“获取”和“发布”数据

这是我的结构。假设我们使用系统中处理配置的一部分

这是我的模型:

App.ConfigurationRoute = Ember.Route.extend({
      model: function(params) {
           return App.Store.configuration('getConfig');
       }
});
这是我的控制器注意事项,我有一个configSubmit操作,数据从视图传递到该操作:

App.ConfigurationController = Ember.ObjectController.extend({
// initial value
    isExpanded: false,
    actions: {
        configSubmit: function() {

            var data = {
                formsDir: this.get('formsDir'),
                processDir: this.get('processDir')
            } 

            App.Store.configuration('saveConfig', data);
        }
    }
});
以下是我的查看代码通知,此通知发布到上面我的控制器中的configSubmit操作:

<script type="text/x-handlebars" id="configuration">
  <div class="process-body">
     <div class="processitem form-reader">
        <form>
           <div class="processitem forms-directory">
              <label class="name">Forms Directory:</label>
              {{input id="forms-directory" class="form-control configuration-item" type="text" value=formsDir}}
           </div>
           <div class="processitem process-directory">
              <label class="name">Process Directory:</label>
                 {{input id="process-directory" class="form-control configuration-item" type="text" value=processDir}}
           </div>
        </form>
     </div>
     <button type="submit" class="btn btn-submit btn-default" {{action 'configSubmit'}}>Submit</button>
    </div>
我的问题是,这是否是一种灵活的策略,不仅适用于restful后端,也适用于非restful后端

请注意,我可以传递数据以及商店将执行的操作。

简短回答:是

长答覆:

余烬数据既困难又有用。与任何库一样,它为您提供了大量有趣的功能,但与此同时,您不得不使用它们的api。优点包括但不限于:记录缓存、脏记录检查、回滚、关系、异步关系、承诺就绪等。缺点是它仍处于测试阶段,关系复杂,响应复杂。它如此棘手的主要原因是缺乏文档,因为它是测试版

对于那些想要实现所有这些细节或他们想要的细节的人来说,不使用余烬数据是一个非常好的方法

我建议您至少将记录包装为Ember.Objects,这样您就可以使用foo.get'property了

Works。 var foo=Ember.Object.create{ 属性:“值” };

App.Store = Ember.Object.extend();

    App.Store.reopenClass({
       configuration: function( action, data ) {
          if (action === 'getConfig') {
           return $.getJSON("myurlforgettingdata").then(function(data) { 
            if (data.config) {
                return data.config; 
            } else {
                return [];
            }
        });
    }
           if (action === 'saveConfig') {
            $.ajax({type: 'POST', url: 'myurltopost', dataType: 'json',
            data: {
                formsDir: data.formsDir,
                processDir: data.processDir,
            },
            success: function(jsonData) {

            },
            error: function() {

            }
        });
    }
var foo = { 
      property: 'value'
};

foo.get('property'); // ERROR get isn't defined on foo
Ember.get(foo, 'property'); // yay w
foo.get('property'); // yay, works