最近维护的报修网站,采用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) { result[key] = typeof source[key]===’object’? deepCoyp(source[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中的元素
时间: 2024-12-28 15:35:50