2013-11-25 4 views
0

Я разрабатывал некоторые угловые контроллеры, и я подходил к шаблону, в котором я не слишком большой поклонник. Учитывая следующее:Метод Init в AngularJS?

app.controller('RecordCtrl', ['$scope', function AppBuilderCtrl($scope) { 

     // do lots of object initing here ... 
    $scope.model = { ... }; 
    $scope.defs = $scope.buildDefs($scope.model); 

    // lots of functions on scope ... 
    $scope.defs = function(model) { ... }; 
}); 

defs бросает неопределенным (дух его не определены, пока), но я в конечном итоге двигаться много моей инициализация коды в нижнюю часть, как представляется, не так велики. Думаю, я мог бы сделать что-то вроде:

// top of controller 
init = function(){ ... } 

// all my methods here 

init(); 

но это тоже. Есть предположения?

ответ

1

Похоже, вы смешали что-то в своем посте - проблема, о которой вы описали, не является очевидной в коде. Во всяком случае, я думаю, что получаю то, что вы говорите. Решение: услуги. Вы не должны запускать функции в своем контроллере. Контроллер предназначен только для подключения данных к просмотру. Итак, если вам нужно что-то создать с помощью функции, эта функция содержится в службе, которую вы передаете контроллеру, а не в самом контроллере.

Here's an example (click for live demo).

<p>{{foo.bar}}</p> <!-- 123 --> 

ЯШ:

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

app.factory('myService', function() { 
    var myService = { //put your methods in services like this 
    create: function() { 
     return { 
     bar: '123' 
     }; 
    } 
    }; 
    return myService; 
}); 

app.controller('myCtrl', function($scope, myService) { //pass the service in 
    $scope.foo = myService.create(); //method is available! 
    console.log($scope.foo); 
}); 
+0

Я вижу ... Я был под впечатлением услуги использовались больше для AJAX запросов и вспомогательных методов для моделей вернулся из. – amcdnl

+0

@amcdnl да, они также используются для этого, но не исключительно. «Угловые сервисы - это объекты или функции однотонных объектов, которые выполняют конкретные задачи, общие для веб-приложений». согласно http://docs.angularjs.org/guide/dev_guide.services.understanding_services – m59

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