我是angularjs的新手。如何使用控制器访问
中分配的值`
var app = angular.module('myApp', []);
app.factory('testFactory', function(){
var alpha = {};
alpha.sample=['apple','orange','grape'];
enter code here
return alpha;
}`
所以我想在这里访问并展示苹果橙和葡萄。
答案 0 :(得分:1)
如果您对工厂的使用比较复杂,那么Simon Poole的回答就是如此,但如果您的使用只是针对规定的阵列,那么使用常数会更简单,通常更好。 (值也适用于您的需要,请参阅AngularJS Doc的链接)
app.js
var app = angular.module('myApp', []);
app.constant('SAMPLES', ['apple', 'orange', 'grape']);
app.controller('testController', ['SAMPLES', function(SAMPLES){
var vm = this;
vm.data = SAMPLES;
}]);
html(与Simon Poole的答案相同)
<html ng-app="myApp">
<head>
...
<script src="app.js"></script>
</head>
<body ng-controller="testController as controller">
<ul>
<li ng-repeat="fruit in controller.data" ng-bind="fruit"></li>
</ul>
</body>
</html>
https://plnkr.co/Po1g0bq1MRoI6x9xAFpU
有关提供商的更多信息(服务,价值,提供商,工厂,常数) https://docs.angularjs.org/guide/providers
答案 1 :(得分:0)
您可能不会需要工厂,您可以直接在控制器中定义样本数据。 这是两者的快速吸收者。
app.js
var app = angular.module('myApp', []);
app.factory('testFactory', function() {
var alpha = {};
alpha.sample = ['apple', 'orange', 'grape'];
return alpha;
});
app.controller('testController', ['testFactory', function(testFactory){
var vm = this;
vm.data = testFactory.sample;
}]);
HTML:
<html ng-app="myApp">
<head>
...
<script src="app.js"></script>
</head>
<body ng-controller="testController as controller">
<ul>
<li ng-repeat="fruit in controller.data" ng-bind="fruit"></li>
</ul>
</body>
</html>