передача javascript в angularjs отображает только первое значение - PullRequest
0 голосов
/ 10 июня 2018

Я пытаюсь создать копию и вставить в angularjs, вызывая javascript getelementby Id () функции.

У меня есть 3 строки в базе данных, но каждый раз, когда я нажимаю CopyTextКнопка копируется только в первые строки (например, Title1) .Если я попытаюсь скопировать текст в строке 2 (например, Title2) , первые строки будут скопированы снова.

Теперь я решил реализовать angular.copy () функций, но он будет отображать значения undefined .Ниже приведен скрипт

<!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>

1 Ответ

0 голосов
/ 10 июня 2018

Все элементы input имеют одинаковый идентификатор: post.title (буквально!).Вы захотите использовать динамически извлекаемый заголовок сообщения, для которого вы должны использовать двойные скобки:

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

Таким же образом, ваш код JS получает элемент input с литералом имя post.title.Вы должны удалить двойные кавычки и сделать:

var copyText = document.getElementById(post.title);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...