在 angular 工厂内使用 angular 变量
use angular variable inside angular factory
我是 angular... 的新手,在下面的代码中我需要使用变量范围 $scope.slugname
inside Angular工厂(测试)..
var myApp = angular.module('myApp', ['infinite-scroll']);
myApp.controller('DemoController', function($scope, Test) {
$scope.slugname ="slugname";
$scope.test = new Test();
});
myApp.factory('Test', function($http) {
var test = function() {
this.items = [];
this.busy = false;
this.after = '';
};
Test.prototype.nextPage = function() {
if (this.busy) return;
this.busy = true;
var url = 'baseURL/?slug='+$scope.slugname; //<-- I need to use variable($scope.slugname) here
$http.jsonp(url).success(function(data) {
var items = data.data.children;
for (var i = 0; i < items.length; i++) {
this.items.push(items[i].data);
}
this.after = this.items[this.items.length - 1].id;
this.busy = false;
}.bind(this));
};
return Test;
});
不能在工厂内部使用作用域变量。或者,您可以将范围变量作为参数传递给工厂函数。
myApp.controller('DemoController', function($scope, Test) {
$scope.slugname ="slugname";
$scope.test = new Test($scope.slugname );
});
myApp.factory('Test', function($http) {
var test = function() {
this.items = [];
this.busy = false;
this.after = '';
};
Test.prototype.nextPage = function(name) {
if (this.busy) return;
this.busy = true;
var url = 'baseURL/?slug='+$scope.slugname;
$http.jsonp(url).success(function(data) {
var items = data.data.children;
for (var i = 0; i < items.length; i++) {
this.items.push(items[i].data);
}
this.after = this.items[this.items.length - 1].id;
this.busy = false;
}.bind(this));
};
return Test;
});
我是 angular... 的新手,在下面的代码中我需要使用变量范围 $scope.slugname
inside Angular工厂(测试)..
var myApp = angular.module('myApp', ['infinite-scroll']);
myApp.controller('DemoController', function($scope, Test) {
$scope.slugname ="slugname";
$scope.test = new Test();
});
myApp.factory('Test', function($http) {
var test = function() {
this.items = [];
this.busy = false;
this.after = '';
};
Test.prototype.nextPage = function() {
if (this.busy) return;
this.busy = true;
var url = 'baseURL/?slug='+$scope.slugname; //<-- I need to use variable($scope.slugname) here
$http.jsonp(url).success(function(data) {
var items = data.data.children;
for (var i = 0; i < items.length; i++) {
this.items.push(items[i].data);
}
this.after = this.items[this.items.length - 1].id;
this.busy = false;
}.bind(this));
};
return Test;
});
不能在工厂内部使用作用域变量。或者,您可以将范围变量作为参数传递给工厂函数。
myApp.controller('DemoController', function($scope, Test) {
$scope.slugname ="slugname";
$scope.test = new Test($scope.slugname );
});
myApp.factory('Test', function($http) {
var test = function() {
this.items = [];
this.busy = false;
this.after = '';
};
Test.prototype.nextPage = function(name) {
if (this.busy) return;
this.busy = true;
var url = 'baseURL/?slug='+$scope.slugname;
$http.jsonp(url).success(function(data) {
var items = data.data.children;
for (var i = 0; i < items.length; i++) {
this.items.push(items[i].data);
}
this.after = this.items[this.items.length - 1].id;
this.busy = false;
}.bind(this));
};
return Test;
});