Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 自动对焦不';与ng include一起使用时不起作用_Angularjs_Autofocus_Angularjs Ng Include - Fatal编程技术网

Angularjs 自动对焦不';与ng include一起使用时不起作用

Angularjs 自动对焦不';与ng include一起使用时不起作用,angularjs,autofocus,angularjs-ng-include,Angularjs,Autofocus,Angularjs Ng Include,我想将焦点设置为部分视图中的一个输入框 喜欢 包括这个 当第一次加载页面时,这可以正常工作。但是当我改变部分时,自动对焦不起作用 我相信这是因为pageload上的自动对焦工作,它如何在这里工作?我不确定如何解决重新加载页面的问题,但我认为我们可以在这里找到另一个解决方案。我曾经写过一个小指令,有条件地将焦点设置在输入元素上 代码如下: function SetFocusDirective($parse) { return { restrict: 'A',

我想将焦点设置为部分视图中的一个输入框 喜欢

包括这个

当第一次加载页面时,这可以正常工作。但是当我改变部分时,自动对焦不起作用


我相信这是因为pageload上的自动对焦工作,它如何在这里工作?

我不确定如何解决重新加载页面的问题,但我认为我们可以在这里找到另一个解决方案。我曾经写过一个小指令,有条件地将焦点设置在输入元素上

代码如下:

function SetFocusDirective($parse) {
    return {
        restrict: 'A',
        link: function (scope, element, attrs) {
            var model = $parse(attrs.setFocus);
            scope.$watch(model, function (value) {
                if (value === true) {
                    element[0].focus();
                }
            });
            element.bind('blur', function () {
                scope.$apply(model.assign(scope, false));
            });
        }
    };
}

SetFocusDirective.$inject = ['$parse'];

app.directive('setFocus', SetFocusDirective);
以下是您如何使用它:

<input type="text" ng-model="firstName" set-focus="autofocusFirstName">

其中,
autofocusFirstName
是一个
$scope
变量,该变量应具有布尔值


因此,每次加载partials时,它们内部的所有指令都将被链接并执行它们的工作。如果您最终使用此指令,您应该能够实现您想要的功能。

您的分区是否有自己的控制器?或者它们只是标记?在我的例子中,它只是标记。你检查了我提供的解决方案了吗?有什么反馈吗?维亚迪克,我没有试过,因为我也在控制器上手动设置焦距,但你的方式比我的好。。