Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 12.08.2015, 19:54
Новичок на форуме
Отправить личное сообщение для tall32 Посмотреть профиль Найти все сообщения от tall32
 
Регистрация: 12.08.2015
Сообщений: 3

Angular и шаблоны
Доброго времени суток.
Есть примерный код
json:
[ 
    {"name":"Nick"},
    {"sorname":"Deeper"}
]

angular:
.........
app.controller('Controller', ['$scope','$http', function($scope,$http) {
    $http.get('file.json').success(function (data)
    {
        ..........
        $scope.name = data.name;
        ..........
        $scope.sorname = data.sorname;
        ..........
     }
        .........
}])
.directive('myCustomer', function() {
return {
                template: "{{name}}<br>{{sorname}}"
          };
});

Cначала загружаетя шаблон, потом затем загружается файл json и т.д.

Вопрос как сделать код так что бы загружался ОДИН json файл в котором был бы шаблон и прочие параметры....вот как пример:

пример:
json:
[ 
        {"tpl":"{{name}}<br>{{sorname}}"},
        {"name":"Nick"},
        {"sorname":"Deeper"}
]


angular:
.........
app.controller('Controller', ['$scope','$http', function($scope,$http) {
        $http.get('file.json').success(function (data)
        {
                app.directive('myCustomer', function() {
                return {
                           template: data.tpl
                }

        };
        ..........
        $scope.name = data.name;
        ..........
        $scope.sorname = data.sorname;
        ..........
        }
        ..........
}])

});


Уже перерыл кучу доков...вроде почти понял..но не понял)))....или вообще так нельзя сделать?...подскажите хотя бы куда копать?))

В заранее спасибо))...
Ответить с цитированием
  #2 (permalink)  
Старый 13.08.2015, 10:23
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,225

Сообщение от tall32
как сделать код так что бы загружался ОДИН json файл в котором был бы шаблон и прочие параметры
Никак.
Создание шаблона декларативно. Оно разумеется может зависеть от данных... Но подгружать его в json файле вместе с данными модели?
Ответить с цитированием
  #3 (permalink)  
Старый 13.08.2015, 20:23
Новичок на форуме
Отправить личное сообщение для tall32 Посмотреть профиль Найти все сообщения от tall32
 
Регистрация: 12.08.2015
Сообщений: 3

Разобрался вроде...

пример: //тут могут быть ошибки так как я упростил код. Но примерно выглядит так

Angular:
var phonecatApp = angular.module('myyApp', []);

phonecatApp.config(function($controllerProvider, $compileProvider, $filterProvider, $provide) {
  phonecatApp.register = {
    controller: $controllerProvider.register,
    directive: $compileProvider.directive,
    filter: $filterProvider.register,
    factory: $provide.factory,
    service: $provide.service
  }; 
});

function reg (obj,text) {
	phonecatApp.register.controller(obj, function ($scope) {
		  	$scope.text = text;
        )};
};

phonecatApp.directive('myDir',['$http','$compile', function($http,$compile) { 
      return  function(scope, element){
         	$http.get('file.json').success(function(data) { 
                       //registration of controllers					
                       regCtrl(data[1].objName,data[1].text);
                       regCtrl(data[2].objName,data[2].text);

                       //getting template
                       var tpl = data[0].tpl; 

                       //create an angular element. (this is our "view")		        			        
                       var el = angular.element(tpl);	
                       //compile the view into a function.	
                       var compiled = $compile(el);
                       //append our view to the element of the directive.      		            			       
                       element.append(el);	  		        		        
                       //bind our view to the scope! 
                       compiled(scope);
			});  
        }
}]);


json:
[
	{"tpl":"<div ng-controller='italic'><i>{{text}}</i></div><div ng-controller='bold'><b>{{text}}</b></div>"
	},   
	{
		"objName": "italic",
		"text": "Этот текст написан курсивом"
	},
	{
		"objName": "bold",
		"text": "Этот текст жирный"
	}
]


HTML:
<body ng-app="myyApp"> 
<div my-dir></div>
</body>
Ответить с цитированием
  #4 (permalink)  
Старый 13.08.2015, 23:00
Профессор
Отправить личное сообщение для Shitbox2 Посмотреть профиль Найти все сообщения от Shitbox2
 
Регистрация: 04.10.2010
Сообщений: 571

Не знаю для чего это нужно, но по всей видимости стоит взглянуть на cacheFactory в т. ч. templateCache
Ответить с цитированием
  #5 (permalink)  
Старый 14.08.2015, 06:53
Новичок на форуме
Отправить личное сообщение для tall32 Посмотреть профиль Найти все сообщения от tall32
 
Регистрация: 12.08.2015
Сообщений: 3

Хорошо, посмотрю.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужен Angular - Frontend \ до 800р. в час Polygant Работа 0 08.06.2015 20:35
Модель в Angular Patr56 Angular.js 2 02.05.2015 00:21
В чем польза angular? cyber_bober Angular.js 11 12.02.2015 20:28
Как сделать чтобы angular дожидался ответа Tek Angular.js 0 20.03.2014 16:06
Angular и динамический контент Diem Angular.js 1 26.07.2013 18:57