Javascript AngularJS如何在指令中保持内部状态?
我想在指令中维护一个内部状态对象,我可以将其作为函数的参数传递给控制器 因此,该指令模板如下所示:Javascript AngularJS如何在指令中保持内部状态?,javascript,angularjs,angularjs-directive,Javascript,Angularjs,Angularjs Directive,我想在指令中维护一个内部状态对象,我可以将其作为函数的参数传递给控制器 因此,该指令模板如下所示: <div> <form name="Test"> <input name="Name"> </form> <button ng-click="submit(formValues)">Submit</button> </div> eventHandler({param
<div>
<form name="Test">
<input name="Name">
</form>
<button ng-click="submit(formValues)">Submit</button>
</div>
eventHandler({param:[something, somethingelse]})
提交
我不必是一个表单,只要我可以将所有的值传递回控制器
作为函数中的参数
angularJS是否可能实现这一点,或者我是否走错了方向?这就是scope属性的用途。尝试使用ng模型将输入与作用域的属性绑定:
<div id="holder">
<input name="something" value="" ng-model="something" />
<input name="somethingelse" value="" ng-model="somethingelse"/>
<button ng-click="eventHandler({param:[something, somethingelse]})">
Call own function
</button>
</div>
并在您的指令范围内这样称呼它:
<div>
<form name="Test">
<input name="Name">
</form>
<button ng-click="submit(formValues)">Submit</button>
</div>
eventHandler({param:[something, somethingelse]})
您也可以使用该指令的控制器进行此操作。 为指令所声明的每个元素实例化控制器get。 大概是这样的:
.directive (function () {
return {
controller: function () {
var a = 'something really private' + new Date().getTime();
this.getA = function () {
return a;
}
}
}
})
通过将作用域注入控制器或作为指令链接函数中的第四个参数,您可以访问该作用域。我不是100%清楚您在问什么,但您是说您想要
输入值吗?尝试将ng model=“myModel”
绑定到您的输入。您不需要传入此值,它将在控制器中通过$scope.myModel
访问onsubmit。我还建议您使用
,它可以为您执行所有默认操作。我的上帝!你是一个救生员,我不知道我可以只介绍模型。我没有完全理解scopes。谢谢