我正在使用ng-bind-html
函数生成输入字段,用于编辑存储在应用程序数据库中的文本。我正在使用$sce
并允许unsafe-html作为输入,如果没有这样做就不会显示。
生成的HTML如下所示:
<input class="edit-db"
ng-model="db[index-1].values[0][0].value"
type="text" placeholder="Enter your answer...">
这将生成一个输入字段,但该值将为空。 (而不是db[index-1].values[0][0].value
但是,如果我复制生成的HTML并手动将其放入我的应用程序(不使用ng-bind-html
生成它),则会显示该值。这告诉我生成的代码没有问题。
这是AngularJS
的错误,还是我做错了什么。考虑输入是否手动添加到页面,值出现我假设某处有错误。
对于会询问“为什么不只是在页面中手动输入字段”的用户 - 这是因为输入量是动态的,并且会根据存在的值的数量而变化。
答案 0 :(得分:0)
你可以尝试
ng-model="{{db[index-1].values[0][0].value}}"
我是Angular的初学者,但希望这有效!
答案 1 :(得分:0)
好的,问题是angularjs不知道这个元素。因此,此元素必须通过 $ compile 阶段才能知道它具有ngModel属性。
此post中的答案可以帮助您解决问题
答案 2 :(得分:0)
这是否在ng-repeat中?
如果它应该看起来像这样的东西。
<div ng-repeat= "item in items">
<input class="edit-db" ng-model="item.db[index-1].values[0][0].value"
type="text" placeholder="Enter your answer...">
<div>'=
您需要通过添加项目让ng-repeat知道这是与items数组中该项相关联的值。在你的模型变量前面。
还要确保包含ngSanitze模块依赖项。您需要包含angular-sanitize.js并将其注入您的app模块。