如何在AngularJS中使用Cufon

时间:2014-09-04 05:25:36

标签: javascript angularjs cufon

我正在开发使用angularJs的项目,我使用Cufon来更改字体。 现在,当加载控制器时,cufon会替换角度表达式,之后会运行angularJs。 那是我的问题。 我希望Cufon在Angular表达式Binding之后运行。 任何人都可以帮助我吗?

在我的HTML页面中:

        <span class="input-label" id="lb" >{{s}}</span>

和js:

        $scope.s = "hiiii";
        Cufon.replace('#lb', {onAfterReplace: Bifon.convert, fontFamily: 'B Titr'});

问题是在角度绑定发生之前,Cufon会改变表达值。

任何人都可以帮助我?

1 个答案:

答案 0 :(得分:2)

您可能希望使用指令并侦听要准备的元素:

HTML:

<div ng-controller="MyController">
    <div class="thing" ng-bind="content" cufon-replace-directive>
        content {{content}}
    </div>
</div>

JS:

function MyController($scope) {

  $scope.content = [
    'param1', 'param2'
  ];
}

angular.module('myApp', [])
  .directive('cufonReplaceDirective', function() {
    return function(scope, element, attrs) {
        element.ready(function(){
          element.html(element.html().replace(/[0-9]/g,"!!!"))
        })
    };
});

Working example

更新了cufon:

function MyController($scope) {

  $scope.content = [
    'param1', 'param2'
  ];
}

angular.module('myApp', [])
  .directive('cufonReplaceDirective', function() {
    return function(scope, element, attrs) {
        scope.content = ["somecontent123"]
        element.ready(function(){
          Cufon.replace('.thing', {onAfterReplace: Bifon.convert, fontFamily: 'B Titr'});
        })
    };
});