当前位置: 首页 > 面试题库 >

AngularJS-我的指令下的html不显示

云伯寅
2023-03-14
问题内容

请参阅相关的jsFiddle

在此文件中,我有两个跨度“ test1”和“ test2”。正在显示跨度“ test2”,但自定义指令“
test1”下面的跨度根本没有显示或未在页面中调用。为什么?

<div ng-app="HelloApp">
    <div ng-controller="MyCtrl">
        <search-bar/> <!-- The Search Bar Directive -->
        <span>test1</span>
    </div>
    <span>test2</span>
</div>

角度代码

var app = angular.module('HelloApp', [])

app.directive('searchBar', function() {
    return {
        restrict: 'AE',
        replace: true,
        template: '<input type="text" ng-model="searchData" placeholder="Enter a search" id="searchbarid" />',
        link: function(scope, elem, attrs) {
            elem.bind('keyup', function() {
                scope.$apply(function() {
                    scope.search(elem);
                });
            });
        }
    };
});

app.controller('MyCtrl', function($scope) {

    var items = ["ask","always", "all", "alright", "one", "foo", "blackberry",    "tweet","force9", "westerners", "sport"];

    $scope.search = function(element) {
        $("#searchbarid").autocomplete({
                 source: items
     });

    };
});

问题答案:

在执行<search- bar/>此操作时,意味着您正在考虑将指令元素标签视为自动关闭标签。自定义html元素本质上并不是自动关闭的,因此您应该像这样关闭指令的元素<search- bar> </search-bar>

当前您<span>test1</span>正在消失,因为您尚未关闭指令元素,因此浏览器会自行关闭其父元素被关闭的元素,如此处的divwith
ng-controller是parent

渲染之前

<div ng-controller="MyCtrl">
    <search-bar/> <!-- The Search Bar Directive -->
    <span>test1</span>
</div>

渲染后

<div ng-controller="MyCtrl">
    <search-bar></search-bar>
</div>

指令开始后,在元素上开始工作,并用输入元素替换指令元素。

这是 自动关闭html标签的列表

工作小提琴



 类似资料:
  • 问题内容: 这是我的AngularJs指令。它原本希望在模板中显示div,但是在运行代码时却什么也没有显示。 这是HTML 这是AngularJS指令 这是演示 问题答案: 声明指令时,您使用了名称,但这是错误的。您应该使用,因为它将被转换为元素。 指令名称中的任何大写字母都将转换为连字符,因为元素中未使用大写字母。例如将翻译为。 正如其他人提到的,AngularJS使用以下标准化规则进行标准化:

  • 问题内容: 我正在尝试构建一个指令,该 指令 负责在其声明的元素上 添加更多指令 。例如,我要建立一个指令,需要增加的照顾,和。 如果我尝试添加这些属性然后使用,则显然会生成一个无限循环,因此我正在检查是否已添加所需的属性: 当然,如果我没有该元素,则将设置属性,但不会引导该指令。 这种方法正确还是我做错了?有没有更好的方法来实现相同的行为? UDPATE :鉴于这是实现此目标的唯一方法,是否有一

  • 主要内容:AngularJS 指令,AngularJS 实例,数据绑定,AngularJS 实例,重复 HTML 元素,AngularJS 实例,AngularJS 实例,ng-app 指令,ng-init 指令,ng-model 指令,ng-repeat 指令,创建自定义的指令,AngularJS 实例,限制使用AngularJS 通过被称为 指令 的新属性来扩展 HTML。 AngularJS 通过内置的指令来为应用添加功能。 AngularJS 允许你自定义指令。 AngularJS 指令

  • 问题内容: 我正在d3可视化中尝试使用angularjs 工具提示指令,所以我有类似 但是,工具提示未显示。我需要什么吗?我也尝试过将它包装起来,但这没有用。 问题答案: 我有一个类似的问题,是的,用解决了。我假设您的d3代码位于自定义指令中。从那里可以添加工具提示属性,删除自定义指令属性,以便$ compile仅运行一次,然后调用$ compile: $ compile服务可确保使用指令添加的属

  • 问题内容: 仅当我删除指令之一即ng-app-demo1和模型时,我才获得输出。为什么我不能同时工作两个ng-app。我是Angular JS的新手,并建立了自己的基础知识。如果一次运行一个指令,我将获得所需的输出。因此,在此示例中,如果我删除了演示ng- app,脚本和控制器,则会得到所需的输出。如果删除demo1 ng-app脚本和控制器,则第一部分工作正常。如何使两个指令同时工作? 输出是

  • 问题内容: 我正在尝试根据当前项目动态显示ng-repeat指令中的多个模板之一。 我的JSON数据如下所示: 我的目标是动态渲染数据树,每个组包含多个部分。这些组都将具有相同的模板,但是每个部分都应基于名称字段具有自己的模板。 假设顶层HTML是: 理想情况下,每个部分还需要具有自己的范围数据和与其关联的控制器。我很幸运用Knockout构建了这种类型的系统,但是我想了解Angular的做事方式