2016-04-20 40 views
0

我相信這是基本的東西,但我找不到它。我正在嘗試將數據發送回控制器。我相信ng-click事件不會觸發。這是我嘗試調試問題。我相信我已經剝離下來,以一個簡單的警報的最基本..另一個ng-click()不按預期方式工作

這裏是控制器和局部視圖

angular.module('FieldApp', []) 
 
    .controller('FieldCtrl', function($scope, $http) { 
 
    $scope.createField = function($scope, $http) { 
 
     alert("Create Field"); 
 

 
    } 
 
    })

 
<script src="./bower_components/angular/angular.js"></script> 
 
<script src="./bower_components/angular-route/angular-route.js"></script> 
 

 
<div class="container" ng-app="FieldApp" ng-controller="FieldCtrl"> 
 
    <button type="button" class="btn btn-primary btn-lg btn-block" ng-click="createField()">Add Field</button> 
 
</div> 
 

 
<script src="./js/field.js" charset="utf-8">

歡呼

+0

複製代碼粘貼到jsfiddle,它似乎工作正常:https://jsfiddle.net/btsjrjkc/ –

+0

從參數化部分中刪除$範圍和$ http並使用像$ scope.createField = function(){/ /你的代碼} –

回答

0

解決方法是沒有正確格式化變量名稱的情況。我在一個文件中有myApp,在另一個文件中有MyApp。自從我使用文本編輯器而不是Visual Studio以來已經有很多年了。

0

的依賴參數在功能中是不必要的。就在宣佈這樣的功能:

$scope.createField = function() { ... } 

而你需要參考$window依賴於顯示警報:

$window.alert("Create Field"); 

不要忘了包括$window在控制器的依賴列表( .controller('FieldCtrl', function($scope, $http, $window) {)。

但是最好只是做console.log("Create Field");

0

窗口引用不是必需的。這是我將如何編寫你的代碼。我不清楚你的代碼到底發生了什麼,但是爲模塊設置一個變量通常是很好的做法。

<!DOCTYPE html> 
<html> 
<head> 
<meta charset="ISO-8859-1"> 
<title>Test</title> 
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.0.8/angular.min.js"></script> 
<script> 

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

    app.controller('FieldCtrl', ['$scope', function($scope) { 
     $scope.createField = function() { 
      alert("Create Field"); 
     }; 

    }]); 
</script> 

</head> 
<body> 
    <div ng-app="FieldApp"> 
     <div ng-controller="FieldCtrl"> 
      <button ng-click="createField()">Add field</button> 
     </div> 
    </div> 
</body> 
</html> 

此代碼段在我的機器上工作。

0

我沒有看到您的代碼有任何問題。我從它創建一個的jsfiddle: https://jsfiddle.net/gcsgggcw/

我剛剛剝去你的HTML的JavaScript鏈接:

<div class="container" ng-app="FieldApp" ng-controller="FieldCtrl"> 
    <button type="button" ng-click="createField()">Add Field</button> 
</div> 

的原因一定是別的東西;你是否檢查過所有的JavaScript文件是否在瀏覽器中正確加載?