gpt4 book ai didi

javascript - 指令的范围与其模板之间没有数据绑定(bind)

转载 作者:行者123 更新时间:2023-12-03 11:34:28 27 4
gpt4 key购买 nike

我有一个简单的指令,在它的 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);
}
}
});
}
}
}]);
});

我的问题是 Controller 未在 View 上呈现模型值。

看看这个 fiddle

最佳答案

我仍然不太确定这是否是您正在寻找的:

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 传递给监听器,而是观看它。

我删除了选项上的 $watched,因为它在那里什么也没做。

关于javascript - 指令的范围与其模板之间没有数据绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26578056/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com