2016-07-12 2 views
-1

Я пытаюсь назначить два контроллер на страницу, но я нахожу, что трудно пройти с угловым JSс использованием 2 контроллера на странице с angularjs

HTML

<div data-ng-controller="useraccount" ng-repeat="item in userphotos"> 
      <ul id="navlist"> 
      <li> 
       {{item.username}} 
      </li> 
      </ul> 
    </div> 

<div data-ng-controller="userphotos_ctrl" ng-repeat="item in userphotos"> 
     <ul id="navlist"> 
     <li> 
      <img class="thumbnail" ng-src="http://localhost/myapp/resize_image/image.php?image={{item.pic}}&new_width=400&new_height=400"> 
     </li> 
     </ul> 
</div> 

JS

.state('tabs.useraccount',{ 
     url:'/useraccount', 
     views:{ 
     'list-source':{ 
     templateUrl: 'templates/user/user_account.html', 
     controller: 'useraccount_ctrl' 
     } 
     } 
    }) 

контроллеры

.controller('useraccount_ctrl',['$scope','$http',function($scope,$http){ 
$http.get('http://localhost/app/templates/user/user_account.php').success(function(data){ 
     $scope.useraccount=(data) ; 
     //console.log(JSON.stringify(data)); 
    }); 
}]) 

.controller('userphotos_ctrl',['$scope','$http',function($scope,$http){ 
$http.get('http://localhost/app/templates/user/photos.php').success(function(data){ 
     $scope.userphotos=(data) ; 
     console.log(JSON.stringify(data)); 
    }); 
}]) 

результат я получаю только результаты для контроллера «useraccount_ctrl», но userphotos_ctrl контроллер не

+0

Это может быть опечатка для копирования/вставки, но в шаблоне контроллер «useraccount», а в JS - «useraccount_ctrl». – Erik

+0

Также (может быть и опечатка), у вас есть элемент 'ng-repeat =" в userphotos "' как в первом, так и в втором div, возможно, вам нужен элемент 'ng-repeat =" в useraccount "'? – rpadovani

+0

только что скорректировал опечатки – user6579134

ответ

-1

Использование Angular UI Router позволяет указать только один контроллер в определении вашего состояния, который будет динамически связан с вашим представлением. Есть несколько вариантов его работы:

  • Использование двух директив (см. this question).
  • Импортируйте файл своего контроллера вручную со статическим импортом. Вы сможете, с вашей страницы, чтобы получить доступ к любому контроллеру в вашем файле:

<script type="text/javascript" src="path/to/controller.js">

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

+0

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

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