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 начнет и вызовет функцию в контроллере, но когда я ничего не нажимаю, текст на экране ничего не изменится. Что я делаю не так?
В вашем 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