从动态数据生成AngularJS UI模板
Generating AngularJS UI templates from dynamic data
我是Angular和前端开发的新手,正在尝试学习Angular并用它创建一些东西。我已经学习了基础知识和更高级的东西,并了解了自己的方法,创建了一些示例应用程序,现在开始构建一些有用的东西。我在服务器端定义了一个数据模型,我想在前端展示它们。显然,通常的方法是创建html模板,绑定字段,然后通过ui路由器之类的东西将它们粘合在一起,这很有效,但我正在考虑构建一些更动态的东西,可以在不首先创建模板的情况下显示数据。我不确定这是否可行,甚至是一个好主意,所以这是我的问题。有没有什么东西可以基于数据模型构建这些部分模板(我更喜欢运行时,但设计时也很好)?
提前谢谢。
这是可以做到的。请参阅此链接https://gist.github.com/rohit9889/3918170.
// My Application
var myApp = angular.module('myAngularApp', ['ui']);
// A Directive to generate Dynamic Template
myApp.directive('dynamicTemplate', function ($compile) {
return {
restrict: 'E',
scope: { form_generator_schema: '=data' },
link: function (scope, elm, attrs) {
console.log("Directive Called");
var schema = scope.form_generator_schema.schema;
var field_inputs = "";
for (var field in schema){
var new_field = "";
var field_type = schema[field].data_type == "boolean" ? "checkbox" : schema[field].data_type;
switch (field_type){
case 'file':
new_field = "<div>" + schema[field].display_name + ":<input type='file' ng-model='" + field_type + "' id='fileToUpload' class='file-field' /></div>";
break;
default:
new_field = "<div>" + schema[field].display_name + ":<input type='" + field_type + "' ng-model='" + field_type + "'/></div>";
}
field_inputs = field_inputs + new_field;
}
elm.append($compile(field_inputs)(scope));
}
};
});
// My Controller
function myController($scope){
$scope.dynamicContent = {
"schema":[
{"data_type":"string", "display_name":"MyField123"},
{"data_type":"file", "display_name":"MyField456"},
{"data_type":"checkbox", "display_name":"MyField789"}
]
};
}
相关文章:
- AngularJS UI路由器不能像ng路由器那样工作
- AngularJS ui路由器html5模式中断路由
- EJS中的Angularjs-Ui路由器参数
- 在angularjs UI网格列中选择下拉菜单不适用于外部editcellTemplate
- AngularJS UI路由器未进入默认状态
- angularjs-ui路由器父状态,参数加载在子状态之后
- Angularjs-ui路由器使用不同的参数进入相同的状态
- AngularJS ui路由器状态结构
- Angularjs:ui路由嵌套状态下的绑定不起作用
- 使用AngularJS UI路由器时出现元素绑定问题
- angularjs-ui路由器解析工厂未定义
- AngularJS - ui.router - 如何在动态添加它们后重定向到所需的状态
- Angularjs UI 多选与初始选择
- 使用AngularJS ui路由器创建类似弹出窗口的状态
- Angularjs UI视图和Rails服务器端模板路由
- angularjs+ui.router:指令控制器和链接函数之间的不同行为
- 在AngularJS ui路由器中,状态已更改,url已更改,但模板url未更改
- AngularJS : ui.router 不显示模板
- 如何在angularjs-ui-bootstrap中使用模态弹出窗口
- 在AngularJS UI路由器中动态更改视图