2015-02-15 3 views
0

Я использую ui-router для маршрутизации моего приложения. На Ui-маршрутизатор я могу определить контроллер, какui-router контроллер или угловой контроллер

myApp.config(function($stateProvider, $urlRouterProvider) { 
    // 
    // For any unmatched url, redirect to /state1 
    $urlRouterProvider.otherwise("/state1"); 
    // 
    // Now set up the states 
    $stateProvider 
    .state('state1', { 
     url: "/state1", 
     templateUrl: "partials/state1.html" 
    }) 
    .state('state1.list', { 
     url: "/list", 
     templateUrl: "partials/state1.list.html", 
     controller: function($scope) { 
     $scope.items = ["A", "List", "Of", "Items"]; 
     } 
    }) 

здесь вы можете увидеть определение контроллера на пользовательском интерфейсе маршрутизаторами состояния объекта.

Мой вопрос, что более часто, определить угловой контроллер или контроллер ui-router?

angular.module('controllerExample', []) 
    .controller('SettingsController2', ['$scope', SettingsController2]); 

ответ

1

«Что более общего» - очень широкий вопрос, но.

Есть несколько вещей, чтобы рассмотреть следующие вопросы:

  1. Какого типа государства и как вложенный является его (Если его вложенное состояние, которое отображает только часть данных, это может быть штраф)
  2. Насколько велик контроллер? (2-3 строки логики можно обрабатывать inline)
  3. Как вы структурируете свое приложение?

В конце концов, лучше практика, чтобы положить все в организованном 1 месте и не разделив ваше определение контроллера, так что если выбирать из обоих подходов, не определяют ваш контроллер встроенный.

+0

Они не существуют какие-либо правил, которые я могу использовать? –

+0

В целом, я рекомендую ознакомиться с этим руководством по стилю - (очень популярный) - https://github.com/johnpapa/angularjs-styleguide –

1

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

Во-первых, если мы объявляем контроллер как SettingsController2 (объект/функция), мы можем использовать его несколько раз.

Во-вторых, такой подход создает реальный тип, который может быть впоследствии легко trakced (найден), как только вы наблюдаете pefromance инструментов (профайлер памяти)

Наконец, если мы будем использовать некоторые JS++ как Typescript или AtScript, мы можно легко использовать наследование и даже другие функции ...

Так что не использовать встроенные четкости, если это возможно

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