假设我有2个相同的表具有相同的结构(称之为'tableA'和'tableB').
我想保存表'A'上的某些数据和表'B'上的某些数据.
现在我想对表格使用相同的MODEL.
我想更改与模型链接的表(比如'ModelM'),根据控制器的条件动态更改.
例如
在控制器中: - //示例代码
function saveProduct(){
$this->loadModel('ModelM');
if(condition){
$this->ModelM->useTable = 'A';
}else{
$this->ModelM->useTable = 'B';
}
$this->ModelM->save($this->data);
}
Run Code Online (Sandbox Code Playgroud)
2011年1月14日的补充
以下是我正在处理的代码的复制/粘贴:
function experiment(){
$tableName = 'temp_table'.'1234';
mysql_query('CREATE TABLE '.$tableName.' LIKE temp_home_masters');
$sql = $this->createInsertQuery($new_arr,$tableName);
$status = mysql_query($sql);
if($status){
echo "saved successfully";
}else{
echo "error";
}
$this->NewHomeMaster->setSource($tableName);//NewHomeMaster was previously attached to a different table , here I want to change the tableName the model linked with dynamically.Model 'NewHomeMaster' already exists and uses a table ...Here I am willing …Run Code Online (Sandbox Code Playgroud) 我在$ rootScope中有一个大对象(比如说> 100个对象,每个对象/数组的层次结构再次),我想用deepWatching $ $看整个$ rootScope(即将$ watch的第3个参数转换为TRUE).
但问题是,$ watch返回2个对象(即一个Old RootScope和Modified RootScope).然后我必须检查$ rootScope及其层次结构中对象的哪个属性被更改为将其推入堆栈.
在观看$ scope时,我们是否有一个简单的方法可以更改确切的属性?
$scope.$watch($rootScope, function(oldObj, newObj){
//all I want here is exactly what attribute changed, NOT entire objects!
}, true);
Run Code Online (Sandbox Code Playgroud)
或者,我可以在对象的每个属性上添加监视,但它看起来非常昂贵.
在角度js中实现撤消/重做的最佳方法是什么?
注意: -
角度历史不适合我的需要因为我想要观察对象的所有属性,它们也可能包含其他对象和数组.
我肯定看整个$ rootScope也不是一个好主意,但我的目标是构建一个具有多个网格的UI,拖放,可能包含表单,元素可以删除.因此,我想构建一个整体解决方案来堆叠更改并在CTRL + Z上撤消它.想象一下复制Photoshop的桌面版本.