Установить значение ввода в зависимости от элемента, нажатого в Angular

0

Я сделал следующий плункер:

https://plnkr.co/edit/Ff2O2TGC4WLaD62fJmvA?p=preview

Я хотел бы, чтобы значение ввода было item.name.

Вот код:

<body ng-app="myApp">

<div ng-controller="MyController">
  <ul ng-repeat="item in collection">
    <li ng-click="edit('{{item.name}}')">{{item.name}}</li>
  </ul>
</div>

  <input  name="myinput" ng-model="myinput"  />

</body>

Js:

var app = angular.module('myApp', [])

.controller('MyController', function($scope, $http) {

  $scope.collection = [
      {name:'foo'},
      {name:'bar'},
      {name:'foobar'},
      {name:'barfoo'},
    ];

  $scope.edit = function(current_name) {

    this.myinput = current_name;

    console.log(current_name);

  }

})
Теги:

3 ответа

1
Лучший ответ

Таким образом, здесь есть несколько проблем. Во-первых, как вы передаете item.name в функцию edit. Вместо edit('{{item.name}}') нужно просто edit(item.name).

Следующий this.myinput в script.js не будет работать; он должен быть $scope.myinput.

Наконец, input в разметку должен находиться внутри div который определяет контроллер.

Я модифицировал Plunkr для работы: https://plnkr.co/edit/mslpklTaStKEdo64FpZl?p=info

  • 0
    Спасибо приму.
1

Угловое выражение не может иметь метки интерполяции. Правильный синтаксис, как если бы это был обычный Javascript:

<li ng-click="edit(item.name)">{{item.name}}</li>
0

Вам не нужно вызывать функцию. Просто делать.

<li ng-click="$parent.myinput = item.name">

Ещё вопросы

Сообщество Overcoder
Наверх
Меню