我有一个简单的指令:
<div my-directive>
<span ng-click="reveal()">Click Me</span>
<!-- And other stuff -->
</div>
当我按下Click Me
时,会打开一个模式,其中包含一个表单供您编辑某些内容。所有这些内容都是scope.form
数据的一部分。现在,假设此对象只有一个名为name
的条目。
所以这就是我为我的指令所做的:
scope.reveal = function()
{
var el = $compile('<input type="text" ng-model="scope.form.name" />')(scope);
// Now launch the modal
}
因此模态确实打开了,scope.form.name
的内容正确显示。但是,如果我关闭模态并再次打开它,则不会保存该值(即,scope.form.name
未在指令内更新。
我能做到的最好的是什么?
答案 0 :(得分:0)
使用angularjs,您通常不会编译并向DOM添加元素。您应该在模板中声明表单并将ng-show绑定到范围内的属性以显示/隐藏表单。
<div my-directive>
<span ng-click="form.show = true">Click Me</span>
<form ng-show="form.show">
<input type="text" ng-model="form.name" />
<form>
</div>