Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 2个指令上的更改侦听器应在另一个指令上生成一个操作_Angularjs - Fatal编程技术网

Angularjs 2个指令上的更改侦听器应在另一个指令上生成一个操作

Angularjs 2个指令上的更改侦听器应在另一个指令上生成一个操作,angularjs,Angularjs,这个问题我纠结太久了,需要帮助 我制作了一个片段,这样问题更容易理解。 目的:使持续时间输入为只读,当开始和结束时!=空的 问题仍然在于指令如何相互通信 我认为代码比文本解释更好 (函数(){ 角度.module('app',[]) .controller('AppController',函数($scope){ $scope.from=3600; $scope.to=7200; $scope.duration=“null”; }) .directive('hourInput',function

这个问题我纠结太久了,需要帮助

我制作了一个片段,这样问题更容易理解。
目的:使持续时间输入为只读,当开始和结束时!=空的

问题仍然在于指令如何相互通信

我认为代码比文本解释更好

(函数(){
角度.module('app',[])
.controller('AppController',函数($scope){
$scope.from=3600;
$scope.to=7200;
$scope.duration=“null”;
})
.directive('hourInput',function(){
返回{
限制:“A”,
要求:'ngModel',
链接:函数(范围、元素、属性、模型控制){
//更改视图的范围副本
modelCtrl.$formatters.push(函数(秒){
如果(秒==“空”| |秒==空){
返回“”;
}		
var secu_num=parseInt(秒,10);
var小时=数学楼层(秒数/3600);
var分钟=数学楼层((秒数-(小时*3600))/60);
小时数=(小时数<10)?“0”+小时数:小时数;
分钟=(分钟<10)?“0”+分钟:分钟;
//只有时间才重要
返回时间+“:”+分钟;
});
//更改模型的范围副本
modelCtrl.$parsers.push(函数(时间){
如果(time.length!=5){
返回“null”;
} 
var hours=parseInt(time.substring(0,2));
var minutes=parseInt(time.substring(3));
返回((小时*60)+分钟)*60+”;
}); 
//问题就在这里
/*
目标:设置从| |到==“null”时只读的持续时间
问题:
这不能发生在这里,因为我们不能同时监视两个输入。
解决方案:
-创建2条指令?(每个输入中1条:从和到)
-控制器?
- ...
注意:我知道我可以通过以下方式查看更改:
modelCtrl.$viewChanheListener…但问题是:
如果FROM==null->持续时间将为ne readOnly,即使TO!=null
*/
}
};
});
})();




{{from}}
为什么您的
持续时间
是一个字符串“null”?它应该是空的…我知道,这是来自一个和我一起工作的后端开发人员