Нажатие кнопки AngularJS не работает

0

index.html

 <!DOCTYPE html>
<html ng-app="todoApp">
<head>
  <title>To Do List</title>
  <link href="skeleton.css" rel="stylesheet"/>
  <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.7/angular.min.js"></script>
  <script src="app.js"></script>
</head>
<body ng-controller="todoController">
  <div class="section hero">
    <div class="container">
      <div class="row">
        <div class="three columns">
            <li>
              <button class="button button-primary" ng-click="btnClick(first)">Data 1</button>
            </li>
        </div>
        <div class="nine columns">
          <h4>{{dataText}}</h4>
        </div>
      </div>
    </div>
  </div>
</body>
</html>

app.js

var app = angular.module('todoApp', []);
app.controller('todoController', function ($scope) {
      $scope.dataText = "";
      $scope.btnClick = function (num){
        dataText = "This is data from the " + num + " button."
      };
  });

Когда я нажимаю кнопку, я ожидаю, что ng-click начнет и вызовет функцию в контроллере, но когда я ничего не нажимаю, текст на экране ничего не изменится. Что я делаю не так?

  • 1
    Что такое «первая» ссылка? нг кнопкой мыши = «btnClick (первый)»
  • 0
    О, я хотел, чтобы он передавал строку вроде «первой» строки
Показать ещё 2 комментария

1 ответ

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

В вашем html нет переменной с именем first,

 <li>
   <button class="button button-primary" ng-click="btnClick(first)">Data 1</button>
 </li>

Вместо этого передайте его как строку

 <li>
   <button class="button button-primary" ng-click="btnClick('first')>Data 1</button>
 </li>

Также измените строку следующим образом:

  $scope.btnClick = function (num){
    $scope.dataText = "This is data from the " + num + " button."
  };

Вот рабочий Plunker

Ещё вопросы

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