假设我已经定义了几个新的组件- MyComponent1
,MyComponent2
......,这延长Ext.Component
.
现在我想用相同的功能扩展所有这些小部件 - 我想添加close
一个出现在右上角位置的按钮MyComponentX.el
.
我该怎么用:mixin
?plugin
?或者是其他东西?
总的来说mixin vs plugin
,最佳做法是什么?
我一直在努力学习使用模特和商店.但代理位让我很困惑.所以我将在这里列出我的理解 - 请指出我理解中的差距.
dirty
会设置其标志.保存模型时会自动清除它.(稍后会详细介绍)proxy
配置和save
方法?我知道模型只能存储在商店中.dirty
在将模型对象添加到商店时不会清除标志?proxy
是模型的静态配置.这是否意味着我们不能将特定模型的对象与多个数据源一起使用?通过扩展,这是否意味着单个模型的多个商店基本上没用?store: 'MyApp.store.MyStore'
- 网格是否实例化了该类型的网格,或者它只是使用我们已经实例化的商店?谢谢!
PS:解释所有这一切的人获得+50赏金:) - 将在48小时结束后提供赏金..
最近我浏览了symfony2 api文档,这里是我在Request's get方法的文档中找到的:
避免在控制器中使用此方法:
- 慢
- 更喜欢从"命名"来源获得
那么"named" source
我应该使用什么而不是get
方法呢?
我试图使用没有实体类的表单上传文件.到目前为止没有运气.
// Controller
public function uploadAction() {
$request = $this->getRequest();
$form = $this->createFormBuilder()
->add('images', 'file') // If I remove this line data is submitted correctly
->add('dir', 'text')
->getForm();
if ($request->getMethod() == 'POST') {
$request = $this->getRequest();
$form->bindRequest($request);
$data = $form->getData();
var_dump($data);
}
else
return $this->render('OverseerMainBundle:Default:form.html.twig', array(
'form' => $form->createView(),
));
}
// form.html.twig
{% block body %}
<form action="{{ path('OverseerMainBundle_upload') }}" method="post" {{ form_enctype(form) }}>
{{ form_widget(form) }}
<input type="submit" />
</form>
{% endblock %}
Run Code Online (Sandbox Code Playgroud)
到目前为止var_dump回声:
array(2) { ["images"]=> NULL …
Run Code Online (Sandbox Code Playgroud) 最近我使用的是directFn配置:
var store = new Ext.data.Store({
proxy: {
type: 'direct',
directFn: myDirectfn,
...
Run Code Online (Sandbox Code Playgroud)
但它不起作用,因为ExtJS引发了异常
未捕获的TypeError:无法读取未定义的属性'method'
在线
method = fn.directCfg.method;
if (method.ordered) {
Run Code Online (Sandbox Code Playgroud)
在文件中path/to/ext/src/data/proxy/Direct.js
.经过一番挖掘,我发现它fn
指的是myDirectfn
功能.所以我刚添加了一些行:
myDirectfn.directCfg = {
method: {}
};
Run Code Online (Sandbox Code Playgroud)
在我的代码中.之后,所有都开始正常工作(这里是小提琴).
所以问题是:这是什么样的神奇之处directCfg
?为什么需要?
我有treestore的嵌套列表.在第一次加载时,商店被完美加载并且根据商店显示列表.当我单击刷新按钮时,我的树库应该重新加载新数据(与第一次具有相同的数据模型),并且嵌套列表也需要重新加载新的数据集.
下面是我的树店定义
rightPaneStoreData = getFolderListData();
rightPaneStore =new Ext.data.TreeStore({
autoLoad:false,
model: 'FIMT.models.rightPaneModel',
root: rightPaneStoreData,
proxy: {
type: 'memory',
reader: {
type: 'tree',
root: 'items'
}
},
listeners: {
datachanged: function(records){
alert("datachanged");
}
}
});
rightPaneStore.load();
Run Code Online (Sandbox Code Playgroud)
在Ext.data.JsonStore中,我使用store.loaddata()方法完成了相同的操作.但我无法找到TreeStore的loaddata()方法.
请帮助我.
我是Extjs的新手,以下是我的代码:
children: [{
text:'Basic Ext Layouts',
expanded: false,
children:[{
text:'Absolute',
id:'absolute',
leaf:true,
},{
Run Code Online (Sandbox Code Playgroud)
我试图让它变得像
children: [{
name:'Basic Ext Layouts',
expanded: false,
children:[{
name:'Absolute',
id:'absolute',
leaf:true,
},{
Run Code Online (Sandbox Code Playgroud)
但它不起作用,请告诉我解决方案
var_dump(false and false || true);
// result: bool(false)
Run Code Online (Sandbox Code Playgroud)
(false and false || true)
按预期返回false.
var_dump(false and false or true);
// result: bool(true)
Run Code Online (Sandbox Code Playgroud)
但是(false and false or true)
返回true.我没有合理的解释为什么会发生这种情况.