AngularJS传递变量以在控制器中进行过滤

ttmt

ReferenceError:数据未定义

AngularJS传递变量以在控制器中进行过滤

大家好

我还是Angularjs的新手,所以可能完全错了。

我试图显示一个Twitter提要,并使用一个筛选器,该筛选器将使用工厂来解析Twitter提要中的链接。

我收到一个错误ReferenceError:数据未定义

我是否需要将数据从“ TwitterCtrl”传递到“ parseTwitterLinks”

我怎样才能做到这一点?

的HTML看起来像这样

<p><span id="retweet-icon"></span><span ng-bind-html-unsafe="tweet.text | parseTwitterLinks"></span></p>

TwitterCtrl

myApp.controller('TwitterCtrl', ['$scope','$http','twitter','$rootScope','$filter','parseTwitterLinksFilter', function($scope, $http, twitter, $rootScope, $filter, parseTwitterLinksFilter){

    $scope.tabId = false;
    $scope.tweet = false;


    $scope.$on('tabId', function(event, tabId) {

        if(tabId != $scope.tabId) {
            $scope.tabId = tabId;
            if($scope.tabId) {
                $scope.fetchTweet();
            } else {
                $scope.tweet = {};
            }
        }
    });

    $scope.fetchTweet = function() {

        var dataUrl = '/twitter?tab=' + $scope.tabId;

        $http({
            method: 'GET',
            url: dataUrl
        }).success(function(data, status, headers, config){

        if(data) {
            $scope.tweet = data;
        } else {
            $scope.tweet = {};
        }      

        }).error(function(data, status, headers, config){
            $scope.tweet = {};
        });
    };

}])

过滤器

myApp.filter('parseTwitterLinks', [function(){

  return function(text) {
    var tweet = data; 
    if(typeof tweet.text != 'undefined') {
        tweet.text = twitter.parseLinks(tweet.text);
    }
    $scope.tweet = tweet;
  }

  return tweet.text;

}]);

工厂解析链接

myApp.factory('twitter', function($rootScope) {

    return {

        parseLinks: function(str) {
            var that = this;
            str = str || '';
            str = that.parseUrl(str);
            str = that.parseUsername(str);
            str = that.parseHashtag(str);
            return str
        },
        parseUrl: function(str) {
            str = str || '';
            return str.replace(/[A-Za-z]+:\/\/[A-Za-z0-9-_]+\.[A-Za-z0-9-_:%&\?\/.=~]+/g, function(url) {
                return '<a href="'+url+'" target="_blank">'+url+'</a>';
            });
        },
        parseUsername: function(str) {
            str = str || '';
            return str.replace(/[@]+[A-Za-z0-9-_]+/g, function(username) {
                return '<a href="http://twitter.com/'+username.replace("@","")+'" target="_blank">'+username+'</a>';
            });
        },
        parseHashtag: function(str) {
            str = str || '';
            return str.replace(/[#]+[A-Za-z0-9-_]+/g, function(tag) {
                return '<a href="http://twitter.com/search?q='+tag.replace("#","%23")+'" target="_blank">'+tag+'</a>';
            });
        }
    }
});
海夫拉斯(Stef Heyenrath)

过滤器“ parseTwitterLinks”正在使用“数据”,是否不应该使用“文本”?

myApp.filter('parseTwitterLinks', [function(){

  return function(text) {
    var tweet = text; // <-- text instead of data ?
    if(typeof tweet.text != 'undefined') {
        tweet.text = twitter.parseLinks(tweet.text);
    }
    $scope.tweet = tweet;
  }

  return tweet.text;

}]);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

angularjs .service无法在控制器之间传递变量

来自分类Dev

angularjs .service无法在控制器之间传递变量

来自分类Dev

AngularJS:在控制器之间传递变量

来自分类Dev

如何在angularjs控制器中进行反向过滤

来自分类Dev

Laravel将传递变量传递给控制器

来自分类Dev

Laravel控制器不传递变量以查看

来自分类Dev

Laravel 5从控制器传递变量到视图

来自分类Dev

从指令到控制器的角度传递变量

来自分类Dev

从控制器传递变量以在opencart中查看

来自分类Dev

Laravel问题从控制器到邮件传递变量

来自分类Dev

从控制器传递变量到视图

来自分类Dev

从控制器传递变量以在opencart中查看

来自分类Dev

在CodeIgniter中的控制器之前传递变量

来自分类Dev

Laravel 5从控制器传递变量到视图

来自分类Dev

Laravel控制器不传递变量以查看

来自分类Dev

从指令到控制器的角度传递变量

来自分类Dev

angularjs如何在控制器中进行方法调用

来自分类Dev

通过控制器方法传递变量,该方法在Laravel中被附加到view :: composer

来自分类Dev

在CakePHP中使用POST从视图向控制器传递变量

来自分类Dev

如何在iOS SDK中使用presentViewController在视图控制器之间传递变量?

来自分类Dev

如何在Rails的控制器方法中传递变量以呈现

来自分类Dev

从控制器传递变量以查看不起作用的Codeigniter

来自分类Dev

Rails4如何在控制器内传递变量

来自分类Dev

在 iOS 中的两个控制器之间传递变量

来自分类Dev

如何更改 Laravel 中登录控制器的功能以传递变量

来自分类Dev

过滤变量未在控制器angularjs中更新

来自分类Dev

AngularJS控制器变量未传递给子指令

来自分类Dev

在angularjs中将变量从控制器传递到html

来自分类Dev

将json变量传递给AngularJS中的控制器

Related 相关文章

  1. 1

    angularjs .service无法在控制器之间传递变量

  2. 2

    angularjs .service无法在控制器之间传递变量

  3. 3

    AngularJS:在控制器之间传递变量

  4. 4

    如何在angularjs控制器中进行反向过滤

  5. 5

    Laravel将传递变量传递给控制器

  6. 6

    Laravel控制器不传递变量以查看

  7. 7

    Laravel 5从控制器传递变量到视图

  8. 8

    从指令到控制器的角度传递变量

  9. 9

    从控制器传递变量以在opencart中查看

  10. 10

    Laravel问题从控制器到邮件传递变量

  11. 11

    从控制器传递变量到视图

  12. 12

    从控制器传递变量以在opencart中查看

  13. 13

    在CodeIgniter中的控制器之前传递变量

  14. 14

    Laravel 5从控制器传递变量到视图

  15. 15

    Laravel控制器不传递变量以查看

  16. 16

    从指令到控制器的角度传递变量

  17. 17

    angularjs如何在控制器中进行方法调用

  18. 18

    通过控制器方法传递变量,该方法在Laravel中被附加到view :: composer

  19. 19

    在CakePHP中使用POST从视图向控制器传递变量

  20. 20

    如何在iOS SDK中使用presentViewController在视图控制器之间传递变量?

  21. 21

    如何在Rails的控制器方法中传递变量以呈现

  22. 22

    从控制器传递变量以查看不起作用的Codeigniter

  23. 23

    Rails4如何在控制器内传递变量

  24. 24

    在 iOS 中的两个控制器之间传递变量

  25. 25

    如何更改 Laravel 中登录控制器的功能以传递变量

  26. 26

    过滤变量未在控制器angularjs中更新

  27. 27

    AngularJS控制器变量未传递给子指令

  28. 28

    在angularjs中将变量从控制器传递到html

  29. 29

    将json变量传递给AngularJS中的控制器

热门标签

归档