- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有以下 Angular 声明,并且没有收到有关 JS 语法错误或类似内容的投诉:
App.js
:
(function () {
'use strict';
var hookPointApp = angular.module("hookPointApp", []);
hookPointApp.controller("agentCtrl", function ($scope, $http) {
$scope.model = {};
...
});
})();
郊区Ctrl
:
(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 功能有时仍然有效。
我认为,Angular(核心和我自己的)文件在 Layout.cshtml
中 body
元素的底部被正确引用:
@Scripts.Render("~/bundles/jquery")
@Scripts.Render("~/bundles/bootstrap")
<script src="~/Scripts/angular/angular.js"></script>
<script src="~/Scripts/angular/angular-resource.min.js"></script>
<script src="~/Scripts/App/App.js"></script>
<script src="~/Scripts/App/suburbsCtrl.js"></script>
@RenderSection("ViewScripts", required: false)
</body>
我可能做错了什么?
最佳答案
首先,您是否可以使用模块的 getter
语法,而不是通过变量引用您的模块。我还将模块声明和 C Controller 定义拆分为单独的文件。这与 John Papa 的 Angular Style Guide 一致。得到 Angular
团队的认可:
App.js
(function () {
'use strict';
angular.module("hookPointApp", []);
})();
agentCtrl.js
(function () {
'use strict';
angular.module("hookPointApp").controller("agentCtrl", function ($scope, $http) {
$scope.model = {};
});
})();
其次,您可能应该使用 Angular
的 $http
服务或其他库来处理 $http
请求,例如 Restangular
>。您遇到的问题是因为您可能正在使用 jQuery 的 ajax 方法,该方法在完成后无法让 Angular 摘要循环知道服务器有响应,除非您通过 通知它$scope.apply()
.
请注意,在 Promise
解析中,我们使用 promise
的 then
方法,而不是 success
,它具有已被弃用。 Read more here关于 $http
和弃用通知。
这是带有 $http
服务的 suburbsCtrl.js
。
(function () {
'use strict';
angular.module("hookPointApp").controller('suburbsCtrl', function ($scope, $http) {
$scope.areas.url = "/Area/ProvinceAreas";
$scope.areas.url = "/Area/ProvinceAreas";
$scope.areas.getOptions = function (provinceId) {
$http.post($scope.areas.url, {
provinceId: provinceId
}).then(function(data){
if (data) {
$scope.areas.options = data;
}
}).catch(function(err){
console.error(err);
});
};
// TODO Get a proper provinceId somehow.
$scope.areas.getOptions(1);
});
})();
PS-Angular
文档鼓励使用 Angular
服务,并且仅在不可用时使用 jQuery
方法。我建议尝试在没有外部 jQuery
依赖的情况下使用 Angular
,并使用 Angular
中内置的 jqLite
来实现以下方法:你可以使用jQuery
。
另请查看这些资源:
关于javascript - Angular 模块和 Controller 文件似乎无法运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37382805/
谁能帮我解决这个问题?我有一个 Tomcat 和简单的 JSF 应用程序:https://github.com/gooamoko/jsfbilling/ .当我在 Tomcat 上运行应用程序时,它运
我有两个这样的域类,第一个是 Manager : package com.mnm class Manager { String name; static hasMany = [ pro
当我运行以下代码时,打印输出似乎不正确。 void thread_Calc(int *pos) { printf("recieved %d\n", *pos); sig = -1; man
这个问题在这里已经有了答案: How to access a local variable from a different function using pointers? (10 个答案) 关闭
我编写了一个程序,其中列表构建器方法返回 IEnumerable of string,其中包括大量字符串(100 万个项目),我将其存储在 List of string 中,然后它将所有项目附加到 中
我正在尝试编写一个 IRC 类型的聊天客户端,它具有可以连接到服务器的客户端。我试图让它在本地 atm 上工作(使用 FIFOS 而不是套接字)。 我遇到了以下我似乎无法解决的问题: 接受新的客户端连
我的一个 cronjobs 每天发送一封电子邮件 35 6 * * * cd $EZPUBLISHROOT && $PHP runcronjobs.php -q 2>&1 我停止使用 cron sud
我使用 WPF 打印路径来处理在我们的应用程序中创建的大型图表。整个图表由视觉效果组成。 所谓的“DesignerPaginator”对图表进行分页(非常简单)。 从这一点来说,我做了以下三件事: -
我尝试在更新之前跟踪系统应用程序并使用: public static boolean isSystemApplication(Context ctx, IContent content) {
我在这里附上了一个查询分析结果,https://explain.depesz.com/s/x9BN 这是查询 EXPLAIN ANALYZE SELECT branche
我正在做一个 CXF(spring) 项目 (HUB)。部署后,我可以看到肥皂和休息服务列表,我通过两个地址打开它。一种是使用本地主机,第二种是使用我电脑的 ip。所以我得到了这些输出。 使用本地主机
这是一个 AnyHashable 不支持枚举转换的简单案例。 enum testEnum: String { case Test } let myObject: AnyHashable = t
我的主要目标是比较存储在数据库和 XLSX 文件中的数据。 为此,我按以下方式创建了两个列表: private class ProductList { public string produc
我从 CMake 3.6 更新到任何最新版本 (3.12.0-rc2),现在我的一个程序无法编译。 奇怪的是,错误消息显示了标准库本身中的 undefined symbol 。这是错误消息: Unde
我希望将我的自定义对话框动画化为从特定点出现,但我无法为对话框设置动画。 该对话框是一个基本的 RelativeLayout,设置为 extends Dialog 类中的布局。 正如这里的一些答案所建
我已经在这个论坛上调查过很多类似的问题,但似乎没有一个能解决我的问题。 我会在底部列出我在这个论坛上看到的一些问题页面,但让我先谈谈我对这个问题的看法。 我正在使用 codeigniter v 2.x
我正在尝试在 RHEL 7 上启动一个 docker-compose 项目作为 systemd 服务。这是我的 systemd 脚本 (/etc/systemd/system/wp.service):
这个问题已经有答案了: "Notice: Undefined variable", "Notice: Undefined index", "Warning: Undefined array key",
我正在尝试在 RHEL 7 上启动一个 docker-compose 项目作为 systemd 服务。这是我的 systemd 脚本 (/etc/systemd/system/wp.service):
此问题出现在my last question here之后。我想将每个按钮聚焦和失去焦点背景设置为主菜单(ContentPane 即 JPanel)下方的背景颜色,因此按钮看起来像选项卡。它在不同的环
我是一名优秀的程序员,十分优秀!