我有
$scope.formTitle = '';
$scope.formDesc = '';
$scope.fields = [];
但是想将这些组合成一个$scope.theForm
,这样我就可以拥有一个可以轻松转换为JSON的对象。
最好的方法是什么?
答案 0 :(得分:2)
没有什么能阻止您在包装类中托管您的媒体资源。它实际上是一种推荐的方法,用于目的相似的属性(例如表单属性)。
// create wrapping class
$scope.theForm = {};
// add properties to the class
$scope.theForm.formTitle = '';
$scope.theForm.formDesc = '';
$scope.theForm.fields = [];
或者您可以在同一语句中声明属性,就像这样
$scope.theForm = {
title: '',
desc: '',
fields: []
}
在 HTML 以及其他任何地方,您只需使用包装类名称作为前缀theForm.formTitle
访问这些属性, ng-repeat="field in theForm.fields"
等等。
答案 1 :(得分:1)
$scope.theForm = {
title: '',
desc: '',
fields: []
}
答案 2 :(得分:0)
我认为你想要的是这样的:
$scope.theForm = {
formTitle: '',
formDesc: '',
fields: []
}
您可以代替theForm
,而不是data
或model
或dataModel
。
但是如果您是从JSON对象获取它,则不需要在范围上具体定义。在这个例子中,我也不会使用$scope
。我将使用resolve对象来获取JSON对象;
MyController.resolve = {
'myDataObject': ['myService', function(myservice] {
return myService.getMyDataObjectPromise();
}]
}
MyController.$inject = ['myDataObject'];
function MyController(myJsonObject) {
this.data = myJsonObject;
}
在您的uiRouter或ngRouter中,您将此控制器的resolve
对象指向MyController.resolve
。此示例您将使用controllerAs
语法。因此,对于controller: 'MyController as vs'
,视图将使用vm.data
访问数据。