如何将类级自定义方法添加到angular rails资源中
How to add class-level custom method to angular rails resource
我使用angular rails资源从angular调用ajax并且我想在我的资源中创建自定义方法,该方法应在与CCD_ 1方法相同。这是资源的代码:
angular.module('mymodule').factory('Posts', ['railsResourceFactory',
function(railsResourceFactory) {
var resource = railsResourceFactory({
url: 'api/v1/users/{{userId}}/posts',
name: 'post'
});
resource.feed = function(userId, timestamp, page) {
return resource.$get('api/v1/users/' + userId + '/posts/feed', {timestamp: timestamp, page: page});
};
return resource;
}
]);
此代码有两个问题:
- 我必须用两种不同的方式在两个地方定义API路由。我想要利用第一次定义的资源url
- 我不能像调用
.query()
方法那样调用它,因为我有userId直接作为参数,而不是作为对象
如何将此代码改进为中已经定义的更多.query()
方法角轨资源?我想通过以下方式调用此方法.feed()
:
Posts.feed({userId: $scope.userId}, {timestamp: new Date(), page: 1}).then(function success(posts){ /*...*/ }, function error() { /*...*/ });
在angular rails资源中有一种叫做.resourceUrl()
的方便方法,它接受url参数对象并用它构建url。您只需要将.feed()
更改为如下所示:
resource.feed = function(context, params) {
return resource.$get(resource.resourceUrl(context) + '/feed', params);
};
因此,完整的服务将具有以下形式:
angular.module('mymodule').factory('Posts', ['railsResourceFactory',
function (railsResourceFactory) {
var resource = railsResourceFactory({
url: 'api/v1/users/{{userId}}/posts',
name: 'post'
});
resource.feed = function(context, params) {
return resource.$get(resource.resourceUrl(context) + '/feed', params);
};
return resource;
}
]);
现在,您将能够以与使用Posts.query()
相同的方式使用Posts.feed()
。
相关文章:
- Angular JS/Rube-on-Rails-控制器未识别错误
- Angular/Rails从表中获取最后保存的数据
- angular js - 指定 Rails API 的主机名
- Angular ng-model 将数据作为数组发送到 rails-api
- 使用Angular/Rails发送带有params的http请求
- 使用angular js通过rails回形针提交文件
- Heroku通过JS文件缩小打破了我的Rails + Angular.js应用程序
- Nested Views with Dynamic Id's Angular & Rails
- Angular 不从 Rails 数据库查询资源
- Angular.js integration with Ruby On Rails Forms
- 如何将计算值绑定到 Angular 中的 ng-model 字段.js以便我可以使用 Ruby on Rails 将完整
- Angular.js带 rails:Chrome 中的元素只执行一个指令
- 带有 Rails 3.1 的 AngularJS - 加载 Angular 种子时遇到问题
- Rails 窗体中的 Angular 客户端窗体验证
- Angular+Rails:Angular找不到控制器函数
- 如何将类级自定义方法添加到angular rails资源中
- 在Angular控制器中将rails日期时间更改为字符串
- Angular Rails:不删除未来日期的自定义过滤器
- 我的ng-change没有在我的Angular/Rails应用上启动
- 控制器中的文本从未记录/从未运行Angular Rails