2016-09-14 2 views
0

Im new to angularjs. Как использовать контроллер для доступа к значениям, которые назначены вangularjs с использованием фабрики и контроллера

`

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

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

var alpha = {}; 

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

    enter code here 

return alpha; 
    }` 

Так вот я хочу, чтобы получить доступ и дисплей яблоко апельсин и виноград, на мой взгляд.

+0

Вы должны использовать контроллер, а не заводскую – holtc

ответ

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

1

Если использование завода является более сложным, то заявил тогда ответ Саймон Пул бы быть идти, но если ваше использование просто для заявленного массива, то с использованием константы w ould быть проще и вообще лучше. (Значение также будет работать для вашей потребности увидеть ссылку на 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 (То же, что ответ Саймон Пула)

<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

Смежные вопросы