Javascript 如何使用ngDialog获得弹出窗口?
我无法使用这个ngDialog模块来处理AngularJs,所以我想知道我哪里出错了 我的Json文件名为abc.Json 角度控制器Javascript 如何使用ngDialog获得弹出窗口?,javascript,angularjs,ng-dialog,Javascript,Angularjs,Ng Dialog,我无法使用这个ngDialog模块来处理AngularJs,所以我想知道我哪里出错了 我的Json文件名为abc.Json 角度控制器 'use strict'; angular.module('mine.controllers', []) .controller('myController', ['$scope', '$sce', '$http', function($scope, $sce, $http, ngDialog) { $http.get
'use strict';
angular.module('mine.controllers', [])
.controller('myController', ['$scope', '$sce', '$http', function($scope, $sce, $http, ngDialog) {
$http.get('abc.json')
.success(function(data) {
$scope.ids = data;
});
$scope.openPlain = function (message) {
ngDialog.open(message);
};
}]);
.controller('myController', ['$scope', '$sce', '$http', 'ngDialog',
function($scope, $sce, $http, ngDialog) {
最后是HTML
<body ng-app="mine">
<table ng-controller="myController">
<tr ng-repeat="datas in ids">
<td>
<span ng-repeat="iden in datas.id">
<a href="" ng-click='openPlain("{{ iden.desc }}")'>{{ iden.value }}</a>,
</span>
</td>
</tr>
</table>
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.2.16/angular.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/ng-dialog/0.2.3/js/ngDialog.min.js"></script>
</body>
所以我猜没有加载ngDialog或其他东西。您没有将ngDialog正确地注入控制器: 这一行:
.controller('myController', ['$scope', '$sce', '$http',
function($scope, $sce, $http, ngDialog) {
这应该是:
.controller('myController', ['$scope', '$sce', '$http', 'ngDialog',
function($scope, $sce, $http, ngDialog) {
这是你的小提琴。您没有指定用于布局对话框的模板。无论如何,这会让你走得更远
您遇到了注入问题,必须在HTML中调用CSS文件。 控制器
'use strict';
angular.module('mine.controllers', [])
.controller('myController', ['$scope', '$sce', '$http', function($scope, $sce, $http, ngDialog) {
$http.get('abc.json')
.success(function(data) {
$scope.ids = data;
});
$scope.openPlain = function (message) {
ngDialog.open(message);
};
}]);
.controller('myController', ['$scope', '$sce', '$http', 'ngDialog',
function($scope, $sce, $http, ngDialog) {
HTML:
那就行了 我认为您的
$scope
在应用程序中的作用域是错误的。我改变你的想法。在点击链接之前,点击run fiddle。这可能对你有用。但在你的小提琴中,$scope
是失控的。我可能一点也不了解您的问题,但您需要在控制器之外定义$scope.openPlain。这将修复您的类型错误:无法调用未定义的方法“open”
您不能在角度控制器之外使用角度$scope
。请参见此处ngDialog中的示例。。。它使用角度范围来运行其MethodsHanks。。。模型中的注入消除了错误。。但是,弹出窗口没有显示thoughWell,这是您需要返回到ngDialog并了解其工作原理的地方。我阅读了文档,但我没有看到它实际上能够显示弹出窗口。在看了这个例子之后,看起来还有很多东西需要设置。在继续之前,您可能应该阅读以下内容:
<link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/ng-dialog/0.2.3/css/ngDialog.css" />