【发布时间】:2016-09-26 12:39:29
【问题描述】:
我有一个调用Factory的js控制器:
(function() {
'use strict';
angular
.module('projectAlabama')
.controller('indexResourceListController', indexResourceListController);
indexResourceListController.$inject = ['resourceListFactory'];
function indexResourceListController(resourceListFactory) {
var vm = this;
resourceListFactory.query().$promise.then(function(data) {
vm.lists = data.splice(0, limit);
});
}
})();
在项目中包含 Angular 的两种方法 - 不同的结果。
第一个:使用资产管道
宝石文件
source 'https://rails-assets.org'
gem 'rails-assets-angular'
gem 'rails-assets-ng-resource'
应用程序.js
//= require angular
//= require ng-resource
//= require angular-route
//= require angular-rails-templates
//= require angular-material
//= require app
//= require_tree ./templates
//= require_tree ./controllers
//= require_tree ./factories
错误!
angular.self.js?body=1:13643 TypeError: Cannot read property 'then' of undefined
at new indexResourceListController
使用 CDN 的第二种方法:
layout.html.erb
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.5.5/angular.min.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.5.5/angular-resource.min.js"></script>
一切顺利。
谁能解释一下为什么?
【问题讨论】:
-
angular使用了哪个 gem? -
@PraveshKhatri 更新问题
-
请在删除
//= require_tree .和//= require ng-resource后检查并申请//= require angular-resource -
@PraveshKhatri 它没有 require_tree 。还是不行
-
@skrypalyk 当你使用 Rails 资产方法时,下载的版本是什么?
标签: javascript ruby-on-rails angularjs ruby asset-pipeline