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; .......... } .......... }]) }); Уже перерыл кучу доков...вроде почти понял..но не понял)))....или вообще так нельзя сделать?...подскажите хотя бы куда копать?)) В заранее спасибо))... |
Цитата:
Создание шаблона декларативно. Оно разумеется может зависеть от данных... Но подгружать его в json файле вместе с данными модели? :blink: |
Разобрался вроде...
пример: //тут могут быть ошибки так как я упростил код. Но примерно выглядит так 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> |
Не знаю для чего это нужно, но по всей видимости стоит взглянуть на cacheFactory в т. ч. templateCache
|
Хорошо, посмотрю.
|
Часовой пояс GMT +3, время: 08:55. |