Laravel后台 + AngularJS前端 的网站构建与维护

最近维护的报修网站,采用Laravel+AngularJS框架搭建,还有很多东西需要熟悉掌握,现将修复的Bug或添加的功能中值得记录的地方总结如下。

其中,需要注意的问题基本是原因不明且不是太严重的问题。

 

完美解决的问题

1. JS和python一样,对象的赋值都为引用,即a=b若a改变了b也会变,因此若需要a,b两者不相关联,需要深拷贝。

因项目中的变量属性都为string类型,所以,直接挨个赋值即可:

$scope.old_report = {};

for(var key in $scope.report){

    $scope.old_report[key] = $scope.report[key];

}

另外,如果需要更复杂的深拷贝,可参考以下两种方法:

  • 可用JQuery.extend(true, {..})函数,不过返回的对象还附有其他函数等信息。
  • 附完整深拷贝代码:
    var deepCopy= function(source) { 
    
        var result={};
    
        for (var key in source) {
    
            if (typeof(source[key]) == 'object'){
    
                result[key] = deepCopy(source[key]);
    
            } else {
    
                result[key] = source[key];
    
            }
    
        } 
    
    return result; 
    
    }
     

需要注意的问题

1. AngularJS的ng-class标签中的css类名中不能出现’-’,否则无法工作(原因不明,估计是bug)。

因此,不能写成这样:

<button ng-class='{detail-mine-btn:showmodifybtn}'></button>

只能写成这样:

<button ng-class='{detail_mine_btn:showmodifybtn}'></button>

showmodifybtn是controller.$scope中的元素

你可能感兴趣的:(AngularJS)