如何访问 AngularJS 中的 Parse 对象属性?
How to access Parse object properties in AngularJS?
我正在构建一个 AngularJS 应用程序,它使用来自解析服务器后端的数据。我通过服务检索任何数据,这些数据可以从我的控制器中调用。但是由于 Parse 对象的工作方式,所有属性都通过 get 函数访问,并且我的 html 变成了像 <p>{{myObject.get('title')}</p>}
这样的行。
理想情况下,我想像访问常规对象一样访问属性,例如myObject.title
,但在 AngularJS 中使用 Parse JS sdk 时,我似乎找不到最佳实践参考。
我的搜索发现有几个人指向 this example of Parse and AngularJS boilerplate by BRANDiD,但指向他们的实际代码和站点的链接似乎已失效。
任何关于如何最好地解决这个问题的见解将不胜感激!
我将创建一个服务,该服务将 return 一个 JSON 转换后的解析响应。
(伪)代码:
服务:
app.service('Books', function($q) {
return {
findBookById: function(id) {
var deferred = $q.defer();
// parse query logics ..
var Book = Parse.Object.extend("Book");
var query = new Parse.Query(Book);
query.equalTo("book_id", id);
query.first({
success: function(response) {
// convert to JSON so that you can access properties directly
// eg. book.name (instead of book.get('name'))
deferred.resolve(response.toJSON());
},
error: function(err) {
deferred.reject(err);
}
});
return deferred.promise;
}
};
});
控制器:
app.controller('BookCtrl', function($scope, Books) {
Books
.findById(10)
.then(function(book) {
$scope.book = book;
})
.catch(function(err) {
alert('Error occurred : ' + err.message);
});
});
查看:
<p>Book Name: {{book.name}}</p>
我正在构建一个 AngularJS 应用程序,它使用来自解析服务器后端的数据。我通过服务检索任何数据,这些数据可以从我的控制器中调用。但是由于 Parse 对象的工作方式,所有属性都通过 get 函数访问,并且我的 html 变成了像 <p>{{myObject.get('title')}</p>}
这样的行。
理想情况下,我想像访问常规对象一样访问属性,例如myObject.title
,但在 AngularJS 中使用 Parse JS sdk 时,我似乎找不到最佳实践参考。
我的搜索发现有几个人指向 this example of Parse and AngularJS boilerplate by BRANDiD,但指向他们的实际代码和站点的链接似乎已失效。
任何关于如何最好地解决这个问题的见解将不胜感激!
我将创建一个服务,该服务将 return 一个 JSON 转换后的解析响应。
(伪)代码:
服务:
app.service('Books', function($q) {
return {
findBookById: function(id) {
var deferred = $q.defer();
// parse query logics ..
var Book = Parse.Object.extend("Book");
var query = new Parse.Query(Book);
query.equalTo("book_id", id);
query.first({
success: function(response) {
// convert to JSON so that you can access properties directly
// eg. book.name (instead of book.get('name'))
deferred.resolve(response.toJSON());
},
error: function(err) {
deferred.reject(err);
}
});
return deferred.promise;
}
};
});
控制器:
app.controller('BookCtrl', function($scope, Books) {
Books
.findById(10)
.then(function(book) {
$scope.book = book;
})
.catch(function(err) {
alert('Error occurred : ' + err.message);
});
});
查看:
<p>Book Name: {{book.name}}</p>