问题标签 [angularjs-compile]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
angularjs - 没有 ng-if 的 Angularjs 指令条件渲染
我有一个指令,只有当我的身份验证服务告诉我时我才会呈现:
指令本身很空:
因为我的指令应该总是在我登录时呈现,所以 ngIf 逻辑应该在指令声明中,而不是在 ng-if 中(没有 ngIf 的指令将完全被破坏)。
知道我想要与ngIf
? :
nfIf
仅当解析为时才会出现在 DOM 中的指令true
nfIf
解析为)时自动调用 $destroyfalse
?
我尝试使用compile
功能和观察者观看security.isAuthenticated()
但没有成功
angularjs - 编译不绑定属性(AngularJS)
我一直在尝试重构我的代码以更多地使用指令来使 html 更具可读性,我试图在 compile 方法中移动一些 html:
HTML:
data-ng-focus 和 data-ng-blur 中的方法在父控制器中定义。我正在尝试找到一种使用指令将它们绑定到 html 的方法。上面的代码似乎不足以做到这一点。我不知道该怎么办......有没有办法用指令完全构建html?
编辑:这是我正在尝试做的说明:
angularjs - 为什么我不能使用 Angular 一个角度指令的 $set 函数来设置 ngPattern、ngMinlength 和 ngMaxlength?
这听起来很奇怪,但是,即使这是不好的做法或其他什么,我怎么能得到这个:
html:
看起来像这样:
目标:
如果不这样做:
.
.
.
我尝试过的一些事情- (plunkr)
假设这部分是恒定的:
.
.
.
以下内容的每次迭代(注释掉等):
和:
并尝试使用控制器
我不知道为什么这很困难。文档起初似乎足够详细,但天哪,一旦您进入战壕,这还不够。我看过每个 egghead.io 视频,读了很多东西……认真的。如果这是另一种语言,我现在就会教它。
javascript - Angular JS 指令定义 - 需要 ngModelController 以及自定义控制器
我正在尝试编写我的 Angular 指令,以便在其控制器的代码中拥有它们的大部分功能,而链接函数仅用于将两个不同的指令控制器绑定在一起。
当涉及到“需要”控制器和定义“控制器”时,我遇到了问题。我应该如何在链接函数中获得对我指定的控制器的引用?
示例代码(当然没有所有周围的 module.directive 东西)
“控制器”包含 ngModelController,但没有给我访问 CustomDirectiveCtrl 的方法。
如何从链接功能访问 ngModelController 和 CustomDirectiveCtrl?
javascript - 告诉子指令在父指令完成 DOM 操作后采取行动?
假设我们有一些嵌套指令:
假设他big-poppa
想要创建一个所有子指令都可以共享的组件。放在控制器里就好了,但是这个组件需要DOM,所以需要在链接函数中构建。
然后假设baby-bird
组件要从组件中读取。也许它想监听它的事件,也许向它发送一两个命令。挑战在于控制器触发 dom(第一个父项,然后是子项),而 post-link 方法触发另一个方向,因此执行顺序如下所示:
- bigPoppa 控制器
- babyBird 控制器
- babyBird 链接
- bigPoppa 链接
父母的方法在孩子的方法之后触发的事实是link
我面临指令内交流挑战的原因。我希望父级构建共享 DOM 组件,但 DOM 构建应该发生在链接函数中。因此,父级在任何子级之后构建组件
我可以通过超时(粗略)或承诺(复杂/非惯用?)来解决这个问题。这是小提琴:
这里有很多背景,但我的问题很简单:
在父指令运行其链接后功能后,是否有一种干净的方法可以在子指令中执行行为?
也许是一种使用方式priority
,或者pre
andpost
链接方法?
javascript - AngularJS:如何使指令从外向内评估?
可执行示例:
http://jsbin.com/secuz/5/edit?html,js,输出
细节
上述失败与我关于 Angular 指令处理顺序的假设相矛盾。我希望首先运行外部指令,然后执行向内传播。
我是否正确地认为这种无序评估是由于ng-if
优先级高于ng-show
?如果是这样,不应该只在两个指令在同一个元素上时才考虑优先级吗?
主要问题
我怎样才能确保执行总是从外到内?我是否需要对我使用的所有指令给予相同的优先级?
编辑:
尝试了另外 2 个场景:
- 如果两者都是
ng-if
s,那么传播是从外向内发生的,正如预期的那样:
[[ '1 if', true ], [ '2 if', true ], [ '1 if', true ], [ '2 if', true ]]
- 然而,两个
ng-show
s 表现出违反直觉的行为:
[[ '2 show', true ], [ '1 show', true ], [ '2 show', true ], [ '1 show', true ]]
javascript - 从 angularjs 版本 1.2 升级到 1.3 时出现奇怪的错误
我正在尝试升级到 angularjs 1.3 并遇到此错误:
我确实加载了“ngSanitize”,并且没有文件丢失错误......我错过了什么吗?
这也与 1.2 分支完美配合。
提前致谢!
angularjs - 使用 $compile 在新范围内新创建的指令不会 ng-animate
我有一个switcher
指令,它有一个创建新范围的方法,并$compile
在其element
上使用另一个指令替换它lister
。
例如,该lister
指令包含一个在新作用域上迭代的 ng-repeat。
我试图在新创建的lister
指令使用ng-enter
和ng-leave
类创建后立即对其进行动画处理,但它没有任何效果,或者看起来如此。
是否可以为使用动态创建的指令设置动画$scompile
?如果是这样,我错过了什么?
代码在这个 plunkr中。
angularjs - 带有指令的元素在单元测试中没有正确编译
我的指令在浏览器中运行良好。这只是我似乎无法工作的单元测试。该指令创建一个简单的滑块,并在范围上设置一些值,包括min
.
在单元测试中, $compile(element) 似乎只是将其包装在 jqlite 中,而没有对其进行任何其他操作。好吧,它显然也给了它一个范围,但范围上什么都没有。该模板也未应用。
我的单元测试:
这个的控制台输出是:
我有一个带有整个(稍微清理过的)代码的 JSFiddle,但它神秘地甚至没有通过 $compile,这与我在本地遇到的问题不同。不确定 JSFiddle 是否有用,因为现在我有两个神秘的问题而不是一个。
angularjs - 必应地图上带有 Angular 指令内容的自定义图钉
我正在使用 Bing Maps AJAX 控件来显示地图。我已经为我想放在地图上的图钉创建了一个 Angular 指令:
在我的 Angular 控制器中,我设置了地图,然后将 (a) Pin(s) 添加到它,如下所示:
不幸的是,但很明显,我的自定义图钉没有显示在地图上,因为“htmlContent”部分是由 Bing 服务动态注入到 DOM 中的。我已经尝试了很多 Angular 的 $compile 服务,但我不知道如何让它工作......