我正在尝试基于Angular custom filter with promise inside构建directive
。我尝试定义filter
,结果相同。
问题在于,每当我使用承诺时,我总是以{}
为值。
以下简单示例非常清楚地显示了这个问题。
var app = angular.module('plunker', []);
app.controller('MainCtrl', function($scope) {
$scope.name = 'World';
});
app.directive('convert', ['$q', function ($q) {
return {
template: '{{convertFunc()}}',
link: function (scope, elem, attrs) {
scope.convertFunc = function () {
var def = $q.defer();
def.resolve('test');
return def.promise.then(function (s) {
return s; // debugger doesn't stop here
}, function (e) {
return e; // debugger doesn't stop here
});
};
}
}
}]);
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<!DOCTYPE html>
<html ng-app="plunker">
<head>
<meta charset="utf-8" />
<title>AngularJS Plunker</title>
<script>document.write('<base href="' + document.location + '" />');</script>
<link rel="stylesheet" href="style.css" />
<script data-require="angular.js@1.2.x" src="https://code.angularjs.org/1.2.28/angular.js" data-semver="1.2.28"></script>
<script src="app.js"></script>
</head>
<body ng-controller="MainCtrl">
<p>Hello {{name}}!</p>
<div data-convert></div>
</body>
</html>
你能帮忙找出我做错了什么吗?
This is the plnkr我曾经创建过这个例子。
我正试图在页面上显示承诺的结果。在我的实际代码中,我正在调用服务,然后使用服务中的值构建string
。
VS调试器显示我的string
已正确构建。但我无法在页面上显示它。我的印象是,JS / Angular未能认识到承诺的完成。我不能停在上面标出的断点上。