Ruby on rails $resource调用url在rails内置的简单angularjs应用程序中失败
我主要遵循Ryan Bates在rails中为angular应用程序所做的设置。在我的文件中:Ruby on rails $resource调用url在rails内置的简单angularjs应用程序中失败,ruby-on-rails,http,url,angularjs,resources,Ruby On Rails,Http,Url,Angularjs,Resources,我主要遵循Ryan Bates在rails中为angular应用程序所做的设置。在我的文件中: gem 'angularjs-rails' 在application.js中: //= require angular //= require angular-resource //= require turbolinks //= require_tree . 以下是我认为来自views/pages.home.html的所有相关代码: <body data-ng-app="dithat"&g
gem 'angularjs-rails'
在application.js中:
//= require angular
//= require angular-resource
//= require turbolinks
//= require_tree .
以下是我认为来自views/pages.home.html的所有相关代码:
<body data-ng-app="dithat">
<div class="container" data-ng-controller="accomplishmentController">
<p> What'd you do? </p>
<form ng-submit="submit()">
<input type="text" ng-model="newAccomp" />
</form>
<div data-ng-repeat="accomp in accomplishments | filter:newAccomp" >
<div class="box" ng-click="addToCount()">
<div class="accomplishment">
{{ accomp.name }}
<a href="#" ng-click="delete()" class="x">x</a>
<p class="count"> {{ accomp.count }} </p>
</div>
</div>
</div>
</div>
<script type="text/javascript">
app = angular.module("dithat", ["ngResource"]);
function accomplishmentController($scope, $resource) {
Entry = $resource('/api/users.json');
console.log(Entry.query());
$scope.accomplishments = [];
$scope.submit = function() {
$scope.accomplishments.unshift({ name: $scope.newAccomp, count: 0 });
$scope.newAccomp = '';
}
$scope.addToCount = function() {
var currentcount = this.accomp.count;
this.accomp.count = currentcount + 1;
}
$scope.delete = function() {
index = this.$index;
$scope.accomplishments.splice(index, 1)
}
}
</script>
</body>
你做了什么
{{acomp.name}
{{acomp.count}
app=angular.module(“dithat”,[“ngResource”]);
函数completashmentcontroller($scope,$resource){
Entry=$resource('/api/users.json');
console.log(Entry.query());
$scope.sclements=[];
$scope.submit=函数(){
$scope.sclements.unshift({name:$scope.newAccomp,计数:0});
$scope.newAccomp='';
}
$scope.addToCount=函数(){
var currentcount=this.accomp.count;
this.accomp.count=currentcount+1;
}
$scope.delete=函数(){
索引=此。$索引;
$scope.sclements.splice(索引,1)
}
}
代码可以正常工作,因为在应用程序中,它的行为应该是正常的,但是它没有进行资源调用。我也尝试了$http
,但也没有成功。我错过了什么??!!非常感谢 根据评论:
completashmentcontroller
函数已定义,但仍需要使用
app.controller('accomplishmentController', accomplishmentController)
否则它将无法使用(也不一定会导致任何错误)。您能否详细说明如何测试代码是否正常工作,以及您在何处查看和看到没有进行资源调用?查看此代码,您没有向angular注册控制器。您刚刚定义了一个可以用作控制器的函数。您是否缺少app.controller('complethmentcontroller',complethmentcontroller)?非常感谢,它现在工作正常:)。我会补充这个作为一个正确的答案。我能再问一个问题吗,即使这可能是一个不同的问题?它正在进行调用,但调用返回的是空数组。localhost:3000/api/users返回一个json对象,该对象来自用户控制器,其中@users=User.all和i render:json。这个问题怎么了?我想应该是一个单独的问题,但我认为可能会有所帮助。另外,如果您需要一个对象,则应该使用
Entry.get()
而不是Entry.query
。请参阅-query hasisArray:true