请参阅相关的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>
正在消失,因为您尚未关闭指令元素,因此浏览器会自行关闭其父元素被关闭的元素,如此处的div
with
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的做事方式