使用工厂和控制器的angularjs

时间:2016-09-14 19:40:50

标签: angularjs

我是angularjs的新手。如何使用控制器访问

中分配的值

`

var app = angular.module('myApp', []);

app.factory('testFactory', function(){

var alpha = {};

alpha.sample=['apple','orange','grape'];

    enter code here

 return alpha;
    }`

所以我想在这里访问并展示苹果橙和葡萄。

2 个答案:

答案 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>

https://plnkr.co/EvY6ANLlyNvgxNxx3IIg