Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/22.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
Javascript 从隔离作用域angularjs更新服务属性_Javascript_Angularjs - Fatal编程技术网

Javascript 从隔离作用域angularjs更新服务属性

Javascript 从隔离作用域angularjs更新服务属性,javascript,angularjs,Javascript,Angularjs,如何从隔离范围修改服务的值 在我的代码中,我希望通过服务属性将默认日期更改为其他日期 我的指示: app.directive('ExampleDirective',['myService',function(myService){ return { restrict: 'E' templateUrl: '/path/to..' scope : { currentDate: "=" , lastDate : "="

如何从隔离范围修改服务的值

在我的代码中,我希望通过服务属性将默认日期更改为其他日期

我的指示:

app.directive('ExampleDirective',['myService',function(myService){
return {
       restrict: 'E'
       templateUrl: '/path/to..'
       scope : { currentDate: "=" ,
                 lastDate : "="
               }

    link : function (scope,element,attr){
    var date = scope.lastDate;
    scope.$watch('currentDate',function(newDate,oldDate){
           LastDate.defaultDate = newDate ;

}

    }  


    }]);
还有我的简单服务:

app.factory('LastDate',function(){
return {
      defaultDate : new Date()
}

});

Link不是合适的地方。我更喜欢用控制器来做这件事。如果有问题,请在$scope.$apply(function(){assign here})内使用赋值。这是一个已知的问题。在link或指令的controller中编写此函数有什么区别?没有区别。控制器首先运行,链路其次运行。在CLINK上运行更多链接不会发生冲突,但如果双向绑定未发生,并且您希望运行摘要循环,则由于$scope而被卡住。$apply不会正确触发监视和摘要。有两种方法可以解决此问题。在您的工厂中创建一个分配新日期的函数,在控制器中调用watch并调用工厂新日期分配的函数,并循环timeoutLink中的watch函数不是执行此操作的正确位置。我更喜欢用控制器来做这件事。如果有问题,请在$scope.$apply(function(){assign here})内使用赋值。这是一个已知的问题。在link或指令的controller中编写此函数有什么区别?没有区别。控制器首先运行,链路其次运行。在CLINK上运行更多链接不会发生冲突,但如果双向绑定未发生,并且您希望运行摘要循环,则由于$scope而被卡住。$apply不会正确触发监视和摘要。有两种方法可以解决此问题。在您的工厂中创建一个分配新日期的函数,在控制器中调用watch并调用工厂的新日期分配函数,并在超时时循环watch函数