【发布时间】:2015-02-21 18:53:02
【问题描述】:
我目前面临一个多方面的“问题”,可以分为几个步骤。
框架的用户将能够通过打开设置页面时读取的 XML 文件将设置动态添加到 UI。 示例:
<settings>
<group>
<groupname>Profile settings</groupname>
<groupsettings>
<setting type="range" savename="volumeslider">
<label>Volume</label>
<min>0</min>
<max>10</max>
<step>1</step>
<default>5</default>
<labelleft>Low</labelleft>
<labelright>High</labelright>
</setting>
<setting type="checkbox" savename="brightnesstoggle">
<label>Brightness</label>
<default>true</default>
</setting>
</groupsettings>
</group>
</settings>
如您所见,此处定义了一个范围滑块 (input type="range") 和一个复选框 (input type="checkbox")。
目前 XML 是通过 ajax 调用解析的
$.ajax({
type: "GET",
url: "settings/globalapp.xml",
dataType: "xml",
success: function(xml) {
$(xml).find('group').each(
function(){/* Parse code here */}
})
这会被解析为一个长字符串,然后将该字符串附加到 UI 中的正确位置。
$("ul>.globalList").append(outputString);
outputString = "<input type="range" min="0" max="10" value="5" ng-model="volumeslider" ng-change="settingsInputChanged(volumeslider, 'volumeslider')">"
如您所见,我有一个 ng-change 绑定,但是当代码附加 jQuery 时,这不起作用。 当我将此字符串硬编码到我的 HTML 中时,它可以完美运行(settingsInputChanged 是一个通用函数,用于将设置值添加到 localStorage)。
我解决这个问题是完全错误的,还是 Angular 有一个简单的内置方法来处理这个问题?
【问题讨论】:
标签: xml angularjs dynamic input