这是我的控制器:
(function () {
var app= angular.module('app');
app.controller('recommendedJobsCtrl', ['$scope', function(dataShare,$q,$scope, $ionicSideMenuDelegate,$window,$http,$timeout) {
// passes contents to jobDetails to be rendered and displayed
window.post = function($event, res){
console.log(angular.element($event.target).parent());
dataShare.sendData(res)
}
/**
* handles pagination
*loads first 3 pages
**/
var i=1;
window.result=[];
window.noMoreItemsAvailable=false;
window.loadMore = function()
{
console.log('here')
if(i<4)
{
$http.get( "http://test.website.com/api/search/"+i).success(function(response)
{
i++;
$scope.result=$scope.result.push(response);
console.log(response);
$timeout(function ()
{
$scope.result = response
});
$scope.$broadcast('scroll.infiniteScrollComplete');
});
}else
{
$scope.noMoreItemsAvailable=true;
}
}
]);
}());
我读到我的控制器处于'用户严格'状态,因此它无法访问变量或函数。所以我放置了“窗口”这个词,使其成为全球性的。但现在它无法访问该功能,因为控制台无法打印。我该如何解决?
答案 0 :(得分:0)
依赖注入不正确:
app.controller('recommendedJobsCtrl', [
'dataShare',
'$q',
'$scope',
'$ionicSideMenuDelegate',
'$window',
'$http',
'$timeout',
function(
dataShare,
$q,
$scope,
$ionicSideMenuDelegate,
$window,
$http,
$timeout) {
// Your code ...
}]);
您的代码应该特定于控制器。您应该在$scope
$scope.<functionName> = function() {}
和$scope.noMoreItemsAvailable
中创建函数和变量,或者像function <functionName>() {}
或var noMoreItemsAvailable
一样在控制器中创建函数和变量。
如果使用window
对象的意图是在控制器之间使用相同的代码,您可以将此代码放在factory
中。