Angular自定义指令,承诺不起作用

时间:2016-02-22 21:07:13

标签: javascript angularjs ionic-framework

我正在尝试基于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我曾经创建过这个例子。

编辑2

我正试图在页面上显示承诺的结果。在我的实际代码中,我正在调用服务,然后使用服务中的值构建string

VS调试器显示我的string已正确构建。但我无法在页面上显示它。我的印象是,JS / Angular未能认识到承诺的完成。我不能停在上面标出的断点上。

0 个答案:

没有答案