【问题标题】:angular js - not assign value to dynamically generated textbox from controller using ng-modelangular js - 不使用ng-model从控制器为动态生成的文本框赋值
【发布时间】:2015-07-27 19:45:05
【问题描述】:

我使用 angular js 指令生成了一个动态表单 HTML,我想使用我提供的值将值分配给生成的文本框(值可能来自数据库或数组)

当我不动态发送任何参数时,它通常通过以下代码运行并将值分配给文本框

 $scope.submitted = function() {
    $scope.title = "submitted";
  };

但是当我向表单发送动态值时,它不起作用。

单击后从指令调用该函数并显示该函数的警报,但该值未按模型分配给文本框。 这是代码

$scope.submitted = function(par) {
    alert(par); 
    $scope.title = par;
  };

请在以下插件上找到代码:

http://plnkr.co/edit/hcM7DX46fDl68axs2ol2?p=preview

【问题讨论】:

    标签: javascript angularjs


    【解决方案1】:

    问题是每个dynamic 指令都是在独立的子作用域中编译的。因此,当您稍后设置外部范围属性 title 时,它不会影响本地指令范围。

    你可以做的是在$scope.submitted函数内设置ngRepeat子作用域标题并将这个值传递给带有作用域配置对象的指令:

    $scope.submitted = function(par) {
        this.title = par; // this points to individual ngRepeate scope object
    };
    

    在指令配置中:

    scope: {
        title: '=model',
        param1: '@',
        formFn: '&'
    },
    

    并像这样使用指令

    <div dynamic param1="{{lang}}" form-fn="submitted(lang)" model="title"></div>
    

    演示: http://plnkr.co/edit/Nb2yh0wlGEyuOqQN8YS3?p=preview

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-30
      • 2018-02-21
      • 2015-10-09
      • 2018-10-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多