Javascript ng模型可以与自定义指令竞争吗?

Javascript ng模型可以与自定义指令竞争吗?,javascript,angularjs,Javascript,Angularjs,ng model和ng enter是否可能在快速输入的情况下,简单地更改enter key行为以调用提供的函数进行竞争?在这种情况下,一个带有键盘楔块驱动程序的条形码扫描仪,远远快于一个人的打字速度 视图中的示例: <input ng-enter="create()" maxlength="16"class="input" ng-model="data.person.idNumber" required/> 我们看到一些事件,其中部分数字被上传,我想知道的是,当值被复制到函数范围

ng model和ng enter是否可能在快速输入的情况下,简单地更改enter key行为以调用提供的函数进行竞争?在这种情况下,一个带有键盘楔块驱动程序的条形码扫描仪,远远快于一个人的打字速度

视图中的示例:

<input ng-enter="create()" maxlength="16"class="input" ng-model="data.person.idNumber" required/> 
我们看到一些事件,其中部分数字被上传,我想知道的是,当值被复制到函数范围的var时,是否不是所有的数据绑定都完成了


它似乎将ngSubmit称为等待挂起绑定的特殊命令,因此我们可能从省略中推断,一般来说,指令没有特定的顺序。

可能有这样的情况。您可以在Angular中播放或签出debounced。您可以尝试在$timeoutng中包装enter不是angularjs提供的指令,因此我无法确定它的作用,但它似乎只是在作用域内调用您的作用域函数。调用$apply时。是的,可能存在这样一种情况,即在调用模型之前,并非所有键入的值都在模型中。您可以像@charlietfl建议的那样,在create函数中执行$timeout以允许对PROPROPROGATERE进行更改。这是指令链接时的顺序,但您遇到的问题是由于基于不同事件处理程序的变量状态。有一个在按下enter键后几乎立即被调用,还有一个在更改输入值时几乎立即被调用,可能会有更多的延迟,因为它会做更多的工作。这些事件的顺序不一定得到保证。另外,当值被复制到函数作用域的var时,所有的数据绑定都会完成,但是在所有这些发生之前,仍然可能会调用create函数
    $scope.create = function(){
        var idNumber= $scope.data.person.idNumber;
//call server etc