需要帮助将代码从 jQuery 调整为 Angular

Posted

技术标签:

【中文标题】需要帮助将代码从 jQuery 调整为 Angular【英文标题】:Need help adapting code from jQuery to Angular 【发布时间】:2017-02-14 15:29:55 【问题描述】:

我在这里找到了一些代码:Textarea limit characters for each row in javascript

我想在我的项目中使用它,但我无法弄清楚如何让它在 Angular 中工作,尤其是设置指令。

这是相关的小提琴:http://jsfiddle.net/aSU7x/

我只是改变 onchange="Validate(this)" onkeyup="Validate(this)"ng-change="Validate(this)" ng-keyup="Validate(this)" ?

我对 Angular 还是不太熟悉,对 jQuery 也只是稍微熟悉一些。我与范围、控制器等有什么关系?这段代码的正确 Angular 实现会是什么样子?谢谢你的时间。

【问题讨论】:

【参考方案1】:

使用作用域和$event在角度调用函数的基本思路

angular.module('changeExample', [])
  .controller('ExampleController', ['$scope',
    function($scope) 
      $scope.keyupfnc = function(evt) 
        console.log(evt.which);
      ;
    
  ]);
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="changeExample">
  <div ng-controller="ExampleController">
    <input type="text" ng-keyup="keyupfnc($event)" />
  </div>
</div>

【讨论】:

我在尝试时收到以下错误:Argument 'ExampleController' is not a function, got undefined 不知道。我复制/粘贴了上面的内容。 如果你有一个 Angular 应用,你需要将它集成到其中,而不仅仅是复制粘贴进去。你应该有一个应用和一个控制器...... 是的。我绝对不知道该怎么做。这就是我写这个问题的原因。我有一个控制器,我有 textarea 的东西。我最终得到了两个模块和两个控制器:一个是我的主应用程序,一个是你提供的模块。 所以你需要做一些 Angular 教程......你应该复制的只是 input 并将其粘贴到 html 中,然后复制 $scope.keyupfnc 并将其粘贴到控制器中。跨度>

以上是关于需要帮助将代码从 jQuery 调整为 Angular的主要内容,如果未能解决你的问题,请参考以下文章

需要帮助将 jQuery 对象转回字符串

Flexigrid / 动态调整行高

如何调整自定义 UIButton 的图像大小?

从 jQuery 1.9.1 迁移到 1.10.1 导致错误:对象没有方法

将图像重新调整为新的高度和宽度,但不要超过原始高度和宽度

为响应式布局重新调整大小时操作 jquery 菜单