按照提示进行操作 Best practice of RestAngular,我正在尝试遵循这些建议( Restangular服务 - 工厂和 exampleService )并且它无效。
以下源代码包括两个部分。没有Angular Factory,那就有效。而工厂没有工作:
<html ng-app="angularexample">
<head>
<script src="https://code.angularjs.org/1.3.14/angular.min.js"></script>
<script src="https://code.angularjs.org/1.3.14/angular-route.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/restangular/1.5.1/restangular.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.3/underscore-min.js"></script>
<script src="script.js"></script>
</head>
<body>
<div ng-Controller='MainCtrl'>
<div ng-repeat="user in users">
Name : {{user.name}}<br>
Age : {{user.age}}<br>
ID : {{user.id}}<br>
Change name:<input type="text" ng-model="user.name"/><button type="submit" ng-click="user.put()">Update</button><br/>
Remove ID:<input type="text" ng-model="user.id"/><button type="submit" ng-click="user.remove()">Delete</button><br/>
</div>
<div>
add new: <br/>
Name : <input type="text" ng-model="newUser.name"/><br/>
Age : <input type="text" ng-model="newUser.age"/><br/>
<button type="submit" ng-click="add()">add</button>
</div>
</div>
<div ng-Controller='ExampleCtrl'>
My Title {{title}} <br/>
<div ng-repeat="user in examples">
Name : {{user.name}}<br>
Age : {{user.age}}<br>
ID : {{user.id}}<br>
Change name:<input type="text" ng-model="user.name"/><button type="submit" ng-click="user.put()">Update</button><br/>
Remove ID:<input type="text" ng-model="user.id"/><button type="submit" ng-click="user.remove()">Delete</button><br/>
</div>
<div>
add new: <br/>
Name : <input type="text" ng-model="newUser.name"/><br/>
Age : <input type="text" ng-model="newUser.age"/><br/>
<button type="submit" ng-click="add()">add</button>
</div>
</div>
</body>
</html>
http://plnkr.co/edit/y22aBpcUwV1btrKB5jVM?p=preview
以下是错误屏幕:
http://i57.tinypic.com/334rfqu.jpg
工作参考被描绘为我的REST服务未托管。然而,我的REST服务只有两个字段 - 名称和年龄。
/**
* User.js
*
* @description :: This is the sample Model for Sails JS to create REST API.
* @docs :: http://sailsjs.org/#!documentation/models
*/
module.exports = {
attributes: {
name : {
type : 'string'
},
age : {
type : 'integer'
}
}
};
我的代码中可能存在什么问题?我想按照最佳实践来构建一个大型应用程序。
答案 0 :(得分:0)
代码失败,因为您的服务方法不返回任何内容。按如下方式更新它们:
// get examples from server by using Restangular
function getExamples(){
return Restangular.all('user').getList();
}
答案 1 :(得分:0)
您正在调用 then 方法而不从工厂方法返回关联的承诺,您应该返回承诺,例如
// get examples from server by using Restangular
function getExamples(){
return Restangular.all('user').getList();
}
// get example with given id from server by using Restangular
function getExample(exampleId){
return Restangular.one('user', exampleId).get();
}
现在这些方法将发出请求并返回您可以调用然后方法的相关承诺。