AngularJS - 在指令中更改控制器模型

时间:2013-05-08 12:04:04

标签: javascript angularjs

有一个简单的角度示例http://codepen.io/snater/pen/mHsAt,我想要的是跨度点击,控制器模型从指令更改,文本字段取模型的值。这可能吗?

1 个答案:

答案 0 :(得分:0)

我认为你使用错误的语法来引用ngModel,结合可能ngModel已经被Angular以其他方式使用的事实;如果您更改用于存储文本的属性的名称,即txtVal,并在模板中引用它而没有scope.,则应该能够在单击时更改输入的值跨度。

这样的事情:

 <div ng-controller="ctrl">

<input change-model txt-val="change_me" />

<p>{{change_me}}</p>

在js文件中:

app.directive "changeModel", ($compile) ->
  priotity: 0
  restrict: "A"
  scope:
     txtVal: '='
  link: (scope, element, attrs) -> 
     //Use txtVal instead of scope.txtVal here
     tpl = "<input ng-model='txtVal' /><span data-value='Write this to model' ng-click='clickHandle()'>Must paste text on click</span></span>"
    new_el = angular.element(tpl)
    scope.clickHandle = ->
       scope.txtVal = "some text" 

通过这些更改,点击范围会同时更新输入值和<p>

的内容