Javascript-форум (https://javascript.ru/forum/)
-   Angular.js (https://javascript.ru/forum/angular/)
-   -   Два шаблона один контроллер (https://javascript.ru/forum/angular/64500-dva-shablona-odin-kontroller.html)

Иван9444 16.08.2016 08:00

Два шаблона один контроллер
 
Вопрос по ангуляру! Два шаблона один контроллер возможна ли такое??

krasovsky 16.08.2016 14:01

Цитата:

Сообщение от Иван9444
Два шаблона один контроллер возможна ли такое??

Да, более того можно даже три, четыре, пять...вопрос лишь в реализации, например через директиву include, или через ui-router.
И даже больше - можно несколько контроллеров и один темплейт!

vip1987 13.11.2016 09:20

По подробнее можете рассказать как это сделать?
У меня подобный вопрос по этой теме))

krasovsky 13.11.2016 16:36

Могу что то конкретное рассказать, а так даже не знаю с чего начать.

vip1987 13.11.2016 19:12

Цитата:

Сообщение от krasovsky (Сообщение 434927)
Могу что то конкретное рассказать, а так даже не знаю с чего начать.

Подскажите как с нуля подключить Angular 1.5.8 и создать 2 контролла на 1 страницу.

krasovsky 14.11.2016 11:33

Допустим используя ui.router:
index.htnl
<!DOCTYPE html>
<html ng-app="myapp" ng-controller="AppCtrl">
<head>
   <script src="angular.js"></sctipt>
   <script src="ui-router.js"></sctipt>
    <script src="myscr.js"></sctipt>
</head>
<body>
	<div ui-view="content"></div>
</body>
</html>


myscr.js
angular.module('myapp', [
       
    ])
	.controller("AppCtrl", function(){})
	.controller("State1Ctrl", function(){
		//code here
	})
	.controller("State2Ctrl", function(){
		//code here
	})
    .config([
        '$stateProvider',
        '$urlRouterProvider',
        function (
            $stateProvider,
            $urlRouterProvider
        ) {
            $urlRouterProvider.otherwise('/state1url');
			
            $stateProvider
			.state('state1', {
                url: '/state1url',
                views: {
                    content: {
                        controller: 'State1Ctrl',
                        templateUrl: 'pathto/state1tpl.html'
                    }
                }
            })
			.state('state2', {
                url: '/state2url',
                views: {
                    content: {
                        controller: 'State2Ctrl',
                        templateUrl: 'pathto/state1tpl.html'
                    }
                }
            })
        }
    ]);

Вот тебе один темплейт и два контроллера


Часовой пояс GMT +3, время: 18:37.