$ scope.value在同一函数中更改

时间:2017-03-06 09:44:25

标签: javascript angularjs angularjs-scope

您好我是Angular和JS的新手,所以可能这是一个已知的问题或我做的一个愚蠢的错误,所以我有这个控制器,我有这个功能:

        $scope.companies = [];                      
        $scope.BindCompanies = function()
        {
            $scope.companies = JSON.parse( localStorage.getItem( Const.CacheKeys.Companies ) )
            if($scope.companies.length = 0){
                companyService.getAll()
                .then(
                    function (response) 
                    {
                        localStorage.setItem(Const.CacheKeys.Companies, JSON.stringify( response.data.d.results ))
                        $scope.companies = response.data.d.results;

                        setDataTableData();
                    }
                );                  
            }
            else{
                setDataTableData();
            }
        }

问题在于执行$ scope.companies包含数据所以它继续其他并且$ scope.companies是空的!

谢谢。

3 个答案:

答案 0 :(得分:1)

更改此

if($scope.companies.length = 0)

到这个

if($scope.companies.length === 0)

答案 1 :(得分:1)

如果添加==而不是=

,请检查比较

答案 2 :(得分:1)

=是赋值运算符。所以每次都在你的代码中,

  

if($ scope.companies.length = 0)

if 块将执行为false,因为0相当于false

如果阻止这样改变你 -

if($scope.companies.length == 0)