我一直在尝试定义指令,以便可以根据字段的类型及其参数(存储在数据库中)以表格形式显示不同的“窗口小部件”。我需要对不同类型的场景做出反应,因此需要使用指令来处理布局。
在玩一些示例时,我想出了 kinda 可以工作的代码:
<input type="text" ng-model="myModel" style="width: 90%"/>
<div class="zippy" zippy-title="myModel"></div>
myApp.directive('zippy', function(){
return {
restrict: 'C',
// This HTML will replace the zippy directive.
transclude: true,
scope: { title:'=zippyTitle' },
template: '<input type="text" value="{{title}}"style="width: 90%"/>',
// The linking function will add behavior to the template
link: function(scope, element, attrs) {
// Title element
element.bind('blur keyup change', function() {
scope.$apply(read);
});
var input = element.children();
function read() {
scope.title = input.val();
}
}
}
});
这似乎可行(尽管明显比* proper * angularJS变量绑定要慢),但我认为必须有更好的方法来做到这一点。谁能阐明这件事?
我不知道您为什么$apply
手动触发该方法,因为您实际上不需要它。
的HTML
<div ng-app="zippyModule">
<div ng-controller="Ctrl3">
Title: <input ng-model="title">
<hr>
<div class="zippy" zippy-title="title"></div>
</div>
</div>
JS
function Ctrl3($scope) {
$scope.title = "Lorem Ipsum";
}
angular.module('zippyModule', [])
.directive('zippy', function(){
return {
restrict: 'C',
replace: true,
transclude: true,
scope: { title:'=zippyTitle' },
template: '<input type="text" value="{{title}}"style="width: 90%"/>',
link: function(scope, element, attrs) {
// Your controller
}
}
});
UPDATE maxisam是正确的,您必须使用ng-model
而不是将变量与值绑定,如下所示:
<input type="text" ng-model="title" style="width: 90%"/>
这是工作版本:http :
//jsfiddle.net/6HcGS/3/
问题内容: 如果我有一个没有模板的AngularJS指令,并且希望它在当前作用域上设置一个属性,那么最好的方法是什么? 例如,计算按钮点击次数的指令: 使用伪指令将点击计数分配给双向属性中的表达式: 有一个更好的方法吗?从我所读的内容来看,孤立的作用域会过大,但是我需要一个子作用域吗?除了使用以外,还有没有更干净的方法可以写回指令属性中定义的范围变量。我只是觉得我很难过。 这里有完整的柱塞。 问题
本文向大家介绍深入理解Angularjs向指令传递数据双向绑定机制,包括了深入理解Angularjs向指令传递数据双向绑定机制的使用技巧和注意事项,需要的朋友参考一下 下面来先看一个简单例子 这个例子我用通俗的话来过一遍 1.使用隔离作用域 让DOM中的 ng-model="Url" ,这里暂且叫他'A' 与 指令中的 some-attr="Url" --> 'B' 形成双向绑定关系 经过上面的步
问题内容: 更新 :在代码的另一部分中一定有些愚蠢。现在可以使用,因此bindToController语法很好。 我们正在使用AngularJS 1.4,它引入了在指令中使用bindToController的新方法。 经过大量的阅读(也许并不能理解所有内容),我们如下定义了指令: 从这样的另一个视图调用它: 先前已在视图控制器中定义: 像这样在指令模板中引用变量: 我们花了4小时试图弄清楚为什么我
问题内容: 我有一个双向数据绑定,它不会更改发送到指令的变量的值。 我的指令监视触发器,并将焦点集中在associates元素上(基于在SO处找到的代码): 在HTML中,我将其称为: 当我第一次触发它时,它可以工作- 因为变量会切换其值。但是在控制器范围内(指令外部)不会在指令完成时切换回原来的状态。 假设我了解应该发生的情况,则在致电时切换回应该发生的情况。 缺少什么会导致双向绑定不将值推回传
本文向大家介绍深入学习AngularJS中数据的双向绑定机制,包括了深入学习AngularJS中数据的双向绑定机制的使用技巧和注意事项,需要的朋友参考一下 Angular JS (Angular.JS) 是一组用来开发Web页面的框架、模板以及数据绑定和丰富UI组件。它支持整个开发进程,提供web应用的架构,无需进行手工DOM操作。 AngularJS很小,只有60K,兼容主流浏览器,与 jQue
本文向大家介绍浅谈AngularJs 双向绑定原理(数据绑定机制),包括了浅谈AngularJs 双向绑定原理(数据绑定机制)的使用技巧和注意事项,需要的朋友参考一下 那么什么是双向绑定,下面简单进行讲解。 首先我们要理解数据绑定。我们看到的网站页面中,是由数据和设计两部分组合而成。将设计转换成浏览器能理解的语言,便是html和css主要做的工作。而将数据显示在页面上,并且有一定的交互效果(比如点