我正在使用Parse.com后端和Angularjs前端开发应用程序。 Parse使用带有getter和setter的Backbone风格的对象,例如我不能只使用ng-model="object.property"
将对象属性连接到文本字段。这些属性在object.attributes属性中可用,但我认为这并不意味着直接设置。现在,我正在做类似的事情(假设键是属性名称的列表):
for (var i = 0; i < keys.length; i++) {
object[keys[i]] = object.get(keys[i]);
}
然后让Angular中的对象发生,然后:
for (var i = 0; i < keys.length; i++) {
object.set(keys[i], object[keys[i]]);
}
object.save();
有人能想出更好的方法来解决这个问题吗?
答案 0 :(得分:0)
我不会混淆Model#set方法,因为它涉及内部的东西,但是如果它对你来说更容易,那么使用model.attributes而不是Model#get我想不出任何错误。<登记/> 那就是说,我认为你更喜欢那些:
// Model#get
myModel.toJSON(); // returns a clone of model.attributes, cool eh?
// Model#set
myModel.set(JSON); // Model#get doesn't support it, but you can set several attributes at the same time
我想这两种方法可以做你想要的。
答案 1 :(得分:0)
您可以删除ParseSDK并使用此AngularJS模块:https://github.com/jimrhoskins/angular-parse
有一些事情并不理想 AngularJS中现有的Parse JavaScript API。现有的API是 以Backbone Models为模型,主要问题是使用setter 而不是对象属性。 instance.set(&#39; property&#39;,&#39; value&#39;) 并不适合像ng-model这样的东西
相反,角度解析松散地基于Spine Models 使用直接在对象上定义的属性。方便 这个,在定义一个模型时,它被配置了#34;通过提供课程 name(在Parse中定义)以及属性的一部分 那个班。
Angular-parse还对任何进行网络调用的方法使用promises。