我有以下的角的聲明,並沒有得到關於JS語法錯誤或任何類似的投訴:角模塊和控制器的文件似乎並沒有運行
App.js
:
(function() {
'use strict';
var hookPointApp = angular.module("hookPointApp", []);
hookPointApp.controller("agentCtrl", function ($scope, $http) {
$scope.model = {};
...
});
})();
suburbsCtrl
:
(function() {
'use strict';
angular.module("hookPointApp").controller('suburbsCtrl', function ($scope, $http) {
$scope.areas.url = "/Area/ProvinceAreas";
$scope.areas.getOptions = function (provinceId) {
var area = "{'provinceId': '" + provinceId + "'}";
$.ajax({
url: $scope.areas.url,
type: "POST",
data: area,
contentType: "application/json; charset=utf-8",
dataType: "json",
async: false,
cache: false,
success: function (response) {
if ((response !== null) && (typeof response !== "undefined")) {
$scope.areas.options = response;
}
},
error: function (xmlHttp, textStatus, errorThrown) {
alert(errorThrown);
}
});
};
// TODO Get a proper provinceId somehow.
$scope.areas.getOptions(1);
...
});
})();
然後我宣佈就像選擇一箇中繼器:
<div ng-controller="suburbsCtrl">
<div class="form-group">
@Html.LabelFor(model => model.AreaId, new { @class = "control-label" })
<select class="form-control" ng-model="areas.areaId" ng-change='areas.getOptions($("#province.val()"))'>
<option> - Select an Area - </option>
<option id="province" ng-repeat="item in areas.options" ng-value="{{item.Id}}">{{item.Label}}</option>
</select>
</div>
</div>
還有getOptions
在我改變選擇選項時並沒有被調用,並且我放入了Chrome調試器的斷點,即使在不在函數中的行上,執行也沒有停止在那裏。 $scope.areas.getOptions(1);
用於初始化下拉菜單,不在函數中,但在函數聲明下面,所以我想聲明該函數,然後立即調用它。模塊文件中的斷點var hookPointApp = angular.module("hookPointApp", []);
甚至不起作用,但應用程序中的某些Angular功能有時仍然有效。
的角度(核心和我自己的)文件是,我認爲,在body
元素的底部Layout.cshtml
正確引用:
什麼可能我是做錯了什麼?
什麼是areas.options是否有可能顯示此數組的內容? – brk
只是BTW,顯然Chrome有斷點的問題,所以我使用舊的,骯髒的'debugger'語句,並且代碼確實正在運行。現在我可以更容易地找到問題。 – ProfK