gpt4 book ai didi

javascript - 将 javascript 传递给 angularjs 仅显示第一个值

转载 作者:行者123 更新时间:2023-12-03 01:42:20 26 4
gpt4 key购买 nike

我尝试通过调用 javascript getelementby Id() 函数在 angularjs 中构建复制和粘贴。

我的数据库中有 3 行,但每次单击 CopyText 按钮时,只会复制第一行(例如 Title1) 。如果我尝试复制第 2 行上的文本(例如 Title2) ,第一行将被再次复制。

现在我决定实现 angular.copy() 函数,但它会显示 值未定义。下面是脚本

<!DOCTYPE html>
<html>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.9/angular.min.js"></script>
<body ng-app="myApp" ng-controller="myCtrl">

<div ng-repeat="post in posts">
<form>
<br> post Title<br>


<input type="text" id="post.title" ng-model="post.title">

<button id='but_save{{$index}}' ng-click="myFunction_copy(post)">Copy text</button><br>
</form>
</div>

<script>

var app = angular.module("myApp", []);
app.controller("myCtrl", function($scope, $http, $parse) {

$scope.posts = [
{
"pid" : "1",
"title" : "title1"
},
{
"pid" : "2",
"title" : "title2"
},
{
"pid" : "3",
"title" : "title3"
},
]



$scope.post = {};
$scope.myFunction_copy = function(post){
var copyText = document.getElementById("post.title");

//var copyText =angular.element(document.getElementById('post.title'));
//var copyText = angular.copy("post.title");

alert(post.title);



copyText.select();
document.execCommand("copy");
alert("Copied the text: " + copyText.value);
}


});

</script>

</body>
</html>

最佳答案

您的input元素都具有相同的ID:post.title(字面意思!)。您将需要使用动态检索的帖子标题,为此您必须使用双括号:

<input type="text"  id="{{post.title}}" ng-model="{{post.title}}">

以同样的方式,您的 JS 代码将检索具有 literal 名称 post.titleinput 元素。您应该删除双引号并执行以下操作:

var copyText = document.getElementById(post.title);

关于javascript - 将 javascript 传递给 angularjs 仅显示第一个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50778930/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com