2014-11-30 4 views
0

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

myapp = angular.module('MYAPP', ['ngRoute']) 
.run(function() { 
    console.info("Hello MYAPP"); 
}); 
myapp.value("vx1", "placeholder for vx1"); 

и контроллер

myapp.controller("MainCtlr", ["vx1", "ovEnv", function($scope, $timeout, vx1, ovEnv){ 
    console.info("ctor MainCtlr env=", ovEnv, "; vx1=", vx1); 
    ... 

Но я всегда получаю undefined для vx1.

ответ

2

["vx1", "ovEnv", function($scope, $timeout, vx1, ovEnv){

Эти две последовательности должны быть равны. Что произойдет, если вы удалите массив массива ["..] и просто оставьте function(...) {?

Как это: myapp.controller("MainCtlr", function($scope, $timeout, vx1, ovEnv) { ... })

или ["$scope", "$timeout", "vx1", "ovEnv", function($scope, $timeout, vx1, ovEnv) (см комментарий)

Подробнее here.

Линейный массив аннотаций

Это является предпочтительным способом для аннотирования компонентов приложения. Вот как написаны примеры в документации .

Например:

someModule.controller('MyController', ['$scope', 'greeter', function($scope, greeter) { // ... }]);

+0

или '[ "$ Объем", "$ Тайм-аут", "vx1", "ovEnv", функция ($ Объем, $ таймаут, vx1, ovEnv) ' – Shomz

+0

имеет прекрасный смысл, спасибо! – Dinesh

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