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, время: 13:39. |