我想要多个文本元素,通过函数动态添加,键控始终显示输入文本字段的内容。相反,绑定的文本仅显示在最近添加的文本元素上,而所有其他文本元素都会消失(?)。即使是我引用的正文中写入的原始 span 标签也不再更新到用户提供的数据(不是说您可以在下面的示例中说出最后一部分,因为它是隐藏的)。
w3school 代码在这里运行:https ://www.w3schools.com/code/tryit.asp?filename=GD4AV18UABPF
<!DOCTYPE html>
<html>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.9/angular.min.js"></script>
<body>
<div ng-app="">
<script>
function linkPairing() {
var divElement = angular.element(document.querySelector('.transaction'));
var $hidden = angular.element(document.querySelector('.hiddenNodeName'));
divElement.append($hidden);
divElement.append("<br />");
}
</script>
<p>Input something in the input box:</p>
<form>
<p>Name: <input type="text" ng-model="newNodeName"></p>
<p>{{newNodeName}}</p>
<p>{{newNodeName}}</p>
<button class="addNewTransaction" id="addNewTransaction" type="button" onclick="linkPairing()">Go</button>
</form>
<div hidden><span class="hiddenNodeName" >{{newNodeName}}</span></div>
<p class="transaction"></p>
</div>
</body>
</html>
我意识到这种用于添加绑定数据引用的隐藏标记方法可能是非常规的,并且根据其他问题,显示的引用通常可能由以下内容生成:
var $div = $("<span>{{newNodeName}}</span>");
divElement.append($compile($div)($scope));
$scope.$apply();
我尝试了上面的变体,但甚至无法获得示例中看到的部分成功。我怀疑我需要对角度有更深入的了解,尤其是范围,才能通过这种方法取得成功。我同时使用 jquery 和 angular,并阅读 stackOverflow 的意见以将 js 模块负载降至最低。最初一切都在 jquery 中,但是当我使用具有链接数据显示的特殊功能时,Angular 中的 ng-bind 数据看起来非常吸引人。由于不确定我最终是否会成功,我现在不愿意将所有内容重构为 angular.js。这个变通办法可以按我的预期运行吗?
RISEBY
慕尼黑的夜晚无繁华
相关分类