Javascript 在AngularJS中,与模型相关的视图数据应该存储在哪里?
我正在使用以下Javascript 在AngularJS中,与模型相关的视图数据应该存储在哪里?,javascript,angularjs,user-interface,model,state,Javascript,Angularjs,User Interface,Model,State,我正在使用以下isText属性在视图中的下拉列表和文本输入字段之间切换(组合ng click=“family.isText=!family.isText”和ng show),同时遍历所有字体系列 font = { name: null, style: null, families: [{ name: null, parent: null, isText: true // <-- }] }; font={ 名称
isText
属性在视图中的下拉列表和文本输入字段之间切换(组合ng click=“family.isText=!family.isText”
和ng show
),同时遍历所有字体系列
font = {
name: null,
style: null,
families: [{
name: null,
parent: null,
isText: true // <--
}]
};
font={
名称:空,
样式:空,
家庭:[{
名称:空,
父项:null,
isText:true//您的后端服务应该能够清除您不希望包含在其中的信息,但要提供一个包含如此少细节的好解决方案确实很困难。您能给我们一个html、控制器和服务/工厂的示例吗?我认为您可以使用一种内容提供商来实现这一点。并将其发送给我们o您的后端
您可以这样做:
(function() {
'use strict';
angular.module('some.module')
.factory('myFontContentProvider', [contentProvider]);
function contentProvider() {
var content = this;
var name = null;
var style = null;
var families: [{
name: null,
parent: null
}]
content.setName = function(n) {
name = n;
}
content.getName = function() {
return name;
}
/* continue with your getters and setters here */
return content;
}
然后在控制器中,使用工厂执行如下映射:
(function() {
'use strict';
angular.module('some.module')
.controller('yourController', ['myFontContentProvider',yourCtrl]);
function yourCtrl(contentProvider) {
var vm = this;
/* mapping here */
vm.getName = contentProvider.getName;
vm.setName = contentProvider.setName;
/* etc */
}
最后,在DOM中,您有:
<div ng-controller="yourController as ctrl"
<!-- to get your value -->
<span ng-bind="ctrl.getName()"></span>
<!-- etc -->
使用一些ng单击=“ctrl.setYOURPROPERTY()”要调用factory函数并设置值,您可以创建一个通用属性白名单或黑名单函数,并将其附加到所有模型。在发送到服务器之前调用它。我可以在后端执行此操作,但我发现它未经优化以发送我无论如何都不会使用的数据。我编辑了我的帖子以添加HTML模板。
<div ng-controller="yourController as ctrl"
<!-- to get your value -->
<span ng-bind="ctrl.getName()"></span>
<!-- etc -->