如何将焦点设置为TextAngular的div

时间:2015-01-22 11:31:17

标签: javascript angularjs angularjs-directive

我正在使用TextAngular。

<div
    text-angular
    ta-toolbar="[['bold','italics', 'underline', 'ol', 'ul']]"
    ng-model="model"></div>

我想在某些条件下设定焦点,但我不明白,如何做到这一点。

1 个答案:

答案 0 :(得分:7)

不知道您的确切需求,但这应该是一个开始。

为具有text-angular属性的元素添加名称,并添加新属性focus(或您想要的其他名称)并将其传递给表达式:

<div text-angular name="myEditor" focus="shouldFocus" ...

添加一个名为textAngular的指令,如下所示:

app.directive('textAngular', ['$parse', '$timeout', 'textAngularManager',
  function($parse, $timeout, textAngularManager) {

    return {
      link: function(scope, element, attributes) {

        // Parse the focus expression
        var shouldFocus = $parse(attributes.focus)(scope);

        if (!shouldFocus) return;

        $timeout(function() {

          // Retrieve the scope and trigger focus
          var editorScope = textAngularManager.retrieveEditor(attributes.name).scope;
          editorScope.displayElements.text.trigger('focus');
        }, 0, false);
      }
    };
  }
]);

演示: http://plnkr.co/edit/ML3rLNutIz1XMo3oO2UC?p=preview