javascript - 如何在 Angular 中使用将指令创建的元素绑定(bind)到模型中?

标签 javascript html angularjs

我想用 Controller 中的对象对输入元素进行建模,但该元素不是 html 中的元素。我有一个指令,在其中我正在制作该元素(以下代码片段中的 newElement )。 1.指令:

panel.directive('ngCustomType', function ($compile) {
return {
    scope: {
        entity: '='
    },
 link: function (scope, elem, attrs){
    newElement = angular.element('<input type="text"/>');
    newElement.attr("ng-model", "entity.name");     // I also tried newElement.attr("ng-model", "currentEntity.name"); but it didn't work
    $compile(newElement)(scope);
    elem.append(newElement);
}

2. Controller :

$scope.currentEntity = {name: ""};

3.查看:

<div ng-custom-type  entity="currentEntity"></div>

当我检查生成的 html 中创建的输入元素时,输入元素中有 ng-model='entity.name' 但它并不是由我的对象真正建模的,当我更改输入时 currentEntity.name 不会改变。如何将它们绑定(bind)在一起?

最佳答案

试试这个:

newElement.attr("ng-model", "entity.name");

关于javascript - 如何在 Angular 中使用将指令创建的元素绑定(bind)到模型中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23511095/

相关文章:

angularjs - 为什么 $digest 会运行所有已在范围上注册的 watch ?

angularjs - 多个 Controller 在angularjs中不起作用

javascript - Mocha 'before each hook' 消息为红色。我怎么知 Prop 体出了什么问题?

javascript - 当属性名称等于搜索值时出现错误结果

javascript - jsp表达式和java脚本一起

javascript - html5 Canvas : clearRect() not working inside function

html - 这个 ID 在 CSS 代码中是什么意思?

javascript - 使用无法正确显示的动态数据显示谷歌图表

php - 删除 URL 文件结尾(.php、.js、.asp 等)

MYSQL 的 PHP 脚本作用于一个文件,而不作用于另一个文件