指令之间没有数据绑定's的范围及其's模板
no data binding between directive's scope and it's template
我有一个简单的指令,它在html模板中包含这个输入元素:
<input type="text" placeholder="Search" class="form-control" ng-model="searchValue" ng-keyup="keyup($event, searchValue)">
这是指令js文件:
define(['angular', 'module'], function (angular, module) {
'use strict';
var templateUrl = module.uri.replace('.js', '.html');
angular.module('App.directives')
.directive('navBar',[function() {
return {
scope: {
options: '=options'
},
restrict: 'E',
replace: 'true',
templateUrl: templateUrl,
link: function($scope, elem, attrs) {
$scope.$watch('options', function (val) {
var options = $scope.options || {};
if(options.search) {
$scope.searchValue = options.search.initValue || '';
$scope.keyup = function(e, value) {
options.search.onSearch(e, value);
}
}
});
}
}
}]);
});
我的问题是控制器没有在视图上渲染模型值。
看看这把小提琴。
我仍然不太确定这是否是您想要的:
http://jsfiddle.net/coma/8d5fj8Lo/2/
app.directive('test', function () {
return {
restrict: 'E',
template: '<div><input type="text" placeholder="Search" class="form-control" ng-model="searchValue"><span>{{blarg}}, {{searchValue}}</span></div>',
replace: true,
link: function ($scope, elem, attrs) {
$scope.$watch('searchValue', function (n, o) {
if (n === o) {
return;
}
$scope.blarg = n + 'fooo';
});
}
};
});
因此,基本上,与其监听keyup事件并将searchValue传递给侦听器,不如直接观看它
我删除了选项上的$watch,因为它在那里什么都没做。
相关文章:
- AngularJS在指令模板中修改范围
- 基于范围数据更改指令模板中的元素
- 角度.js指令模板 URL 无法绑定范围
- 在指令中将范围从模板传递到链接
- 角度指令模板输入不会更新指令范围
- 在哪些范围内执行剑道模板
- “this”是否始终指向模板中的当前范围
- 角度不更新范围更改时的模板
- 服务中的角度范围更改不影响模板
- 带有模板URL和隔离范围的角度测试指令
- 在 HTML 模板中使用短划线绑定范围属性
- 范围更改时如何显示模板 [角度指令]
- AngularJS指令:具有范围值的模板(ng-bind-html)
- 访问模板的实例范围并注入数据
- 无法访问模板中的范围数据
- 如何在 Angular 指令中的模板上呈现范围变量
- Angular JS 如何从指令模板内容事件调用指令范围函数
- AngularJS指令,没有模板,并从父范围共享更新
- 指令之间没有数据绑定's的范围及其's模板
- 使用双花括号{{}}在指令模板中使用范围变量