【发布时间】:2023-03-12 19:01:01
【问题描述】:
我有一个输入框,我试图将其绑定到一个 div。此 div 输出之前输入到输入框中的所有文本值,以空格分隔。
我的第一个问题是 angularjs 在输出输入框中的文本时响应缓慢。当我按空格键时,新元素不会弹出到dom中,直到我在输入框中输入一个新字符。
我遇到了这个 createNewTag 函数的一些奇怪错误,它不喜欢我连续输入多个空格。输入“错误数据”后,该工具将停止工作,并显示错误 - “错误:[ngRepeat:dupes]”。
希望这是一个有趣的!
谢谢。
function mainControllerCbk($scope) {
$scope.tags = [];
$scope.currentTag = "";
$scope.createNewTag = function(event) {
if (event.keyCode == 32) {
$scope.tags.push($scope.currentTag);
$scope.currentTag = "";
$('#entrybox').val('');
}
};
$('#entrybox').keyup($scope.createNewTag);
};
var app = angular.module('localApp', []);
app.controller('mainController', mainControllerCbk);
<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"> </script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
</head>
<body ng-app="localApp" ng-controller="mainController">
<div>
<input id="entrybox" data-ng-model="currentTag" />
<div id="tagsCollection" ng-repeat="tag in tags">
<span>{{tag}}</span>
</div>
</div>
</body>
</html>
【问题讨论】:
-
摆脱使用 jQuery。这不是创建角度应用程序的方法。强烈建议阅读thinking-in-angularjs-if-i-have-a-jquery-background
-
@charlieftl 谢谢,好文章。