解决了,请参阅下面的更新.您可以使用此代码作为参考来实现simillar
假设我有一个父反应组件(ES6):
亲
import ChildDiv from './ChildDiv'
export default React.createClass({
  displayName: 'ParentDiv',
  getInitialState () {
    nodesLoadedToCanvas: 0,
    workedOnParentOnceAfterAllChildrenWereLoaded: false
  },
  onChildNodeDidMount () {
    let nodeCount = this.state.nodesLoadedToCanvas + 1
    this.state.nodesLoadedToCanvas = nodeCount
    console.log('Mount ' + this.state.nodesLoadedToCanvas + ' nodes so far')
  },
  render () {
    const {children} = this.props // 'children' is a model collection
    return (
      <div id='ParentDiv'>
      {children.map((childDiv) => 
        <ChildDiv data={childDiv} key={childDiv.id} onRender={this.onChildNodeDidMount}/>
      )}
      </div>
    )
  },
  componentDidMount () {
    console.log('Parent did mount')
  },
  componentDidUpdate () …Run Code Online (Sandbox Code Playgroud) 如何在SapUI5中的XML-View中实现if/else条件,该条件使用来自JSONModel的标志(条件)?
到目前为止我有一个控制器:
sap.ui.define([
    "sap/ui/core/mvc/Controller",
    "sap/ui/model/json/JSONModel"
], function (Controller, JSONModel) {
    "use strict";
    return Controller.extend("sap.ui.demo.myApp.myController", {
        onInit: function () {
            //// set data model on view
            var oData = {
                title: "A cool title",
                values: [{name: "Text 1", marketed: true}, {name: "Text 2", marketed: false}, {name: "Text 3", , marketed: true}]
            };
            var oModel = new JSONModel(oData);
            this.getView().setModel(oModel);
        }
    });
});
Run Code Online (Sandbox Code Playgroud)
和一个视图:
<mvc:View
    controllerName="sap.ui.demo.myApp.myController"
    xmlns="sap.m">
    <!-- using aggregation binding -->
    <Panel expandable="true" expanded="true" headerText="{/title}" width="100%" content="{/values}">
        <content> …Run Code Online (Sandbox Code Playgroud) 我无法将数据从XML视图发送到控制器.在JS视图中很容易实现.
例如:-
在JS视图中: -
var btn = new sap.m.Button({
    text:"click",
    tap:function(){
          callFunction(oEvent, "mycustomString");
    }
});
Run Code Online (Sandbox Code Playgroud)
如何使用XML视图实现相同的功能.
<Button text="click" tap="callFunction"/>
Run Code Online (Sandbox Code Playgroud)
以上只会传递事件而不是"mycustomString".我该怎么做?
在sapUI5/openUI5中,我有一个JSONModel,我填充来自服务器的文件:
var oModel = new JSONModel();
oModel.loadData("http://127.0.0.1/data/config.json");
console.log(JSON.stringify(oModel.getData()));
Run Code Online (Sandbox Code Playgroud)
由于请求是异步的,控制台会记录一个空的oModel.
console.log()在加载数据后调用如何使它同步?
我可以在openUI5项目中使用webpack及其捆绑功能吗?怎么样?
我知道openui5_preload并且gulp-ui5-preload我想要的不仅仅是将我的所有代码放在一个preloader文件中:我喜欢"遍历"所有使用过的dedendencies并将我的整个openUI5项目捆绑在一个文件中.
到目前为止,我能够使用UI5运行webpack:
npm i -g webpack
webpack.config.js:
module.exports = {
  entry: {
    packed: './webapp/Component.js'
  },
  output: {
    path: './built',
    filename: '[name].built.js'
  },
  resolve: {
    modulesDirectories: [
      'node_modules',
      'bower_components'
    ]
  }
};
Run Code Online (Sandbox Code Playgroud)
并运行webpack一个文件built/packed.built.js.但它只包含我的component.js文件.为什么?
在单页面JavaScript应用程序构建中包含和引用图像以及与webpack捆绑在一起的最佳方法是什么?
到目前为止我有
return (<img src={require('./pic.png'}</div>)
Run Code Online (Sandbox Code Playgroud)
有没有更好的办法?
我在 Matrix 中有 5000 个 3D 点A,在矩阵中有另外 5000 个 3D 点B。
对于 中的每个点,A我想找到到 中的点的最小距离B。这些距离应存储在一个包含 5000 个条目的数组中。
到目前为止,我已经有了这个解决方案,运行在大约0.145342 seconds (23 allocations: 191.079 MiB). 我怎样才能进一步改进这一点?
using Distances
A = rand(5000, 3)
B = rand(5000, 3)
mis = @time minimum(Distances.pairwise(SqEuclidean(), A, B, dims=1), dims=2)
Run Code Online (Sandbox Code Playgroud) 如何在 SapUI5 中构建一个 XML 视图来遍历 JSONModel 中的所有元素?
到目前为止,我有一个控制器:
sap.ui.define([
    "sap/ui/core/mvc/Controller",
    "sap/ui/model/json/JSONModel"
], function (Controller, JSONModel) {
    "use strict";
    return Controller.extend("sap.ui.demo.myApp.myController", {
        onInit: function () {
            //// set data model on view
            var oData = {
                title: "A cool title",
                values: [{name: "Text 1"}, {name: "Text 2"}, {name: "Text 3"}]
            };
            var oModel = new JSONModel(oData);
            this.getView().setModel(oModel);
        }
    });
});
Run Code Online (Sandbox Code Playgroud)
和一个视图:
<mvc:View
        controllerName="sap.ui.demo.myApp.myController"
        xmlns="sap.m"
>
    <Panel expandable="true" expanded="true" headerText="{/title}" width="100%">
        <content>
            <!-- how to iterate over {/values} …Run Code Online (Sandbox Code Playgroud) 如何在sapUI5 XML视图中显示控制器变量?
到目前为止我有一个控制器:
sap.ui.define([
    "sap/ui/core/mvc/Controller"
], function (Controller) {
    "use strict";
    return Controller.extend("sap.ui.demo.myApp.myController", {
        onInit: function () {
            this.myName = "Jon Doe";
        }
    });
});
Run Code Online (Sandbox Code Playgroud)
和XML视图:
<mvc:View
    controllerName="sap.ui.demo.myApp.myController"
    xmlns="sap.m">
<Panel>
    <content>
        <Label text="bind controller myName to this label"/>
    </content>
</Panel>
Run Code Online (Sandbox Code Playgroud)
这可能不使用模型绑定吗?如果不是:最聪明(最短)的方法是什么?
我在SAP HANA索引服务器中有一些列:
ID | COL_1 | COL_2 | COL_3
---+-------+-------+------
 1 |     5 |     3 |    2
 2 |     7 |     9 |    8
 3 |     5 |     4 |    6
Run Code Online (Sandbox Code Playgroud)
如何获得每行的最小值?
预期结果:
ID | MIN   
---+-------
 1 |     2 
 2 |     7 
 3 |     4 
Run Code Online (Sandbox Code Playgroud)
到目前为止我试过了
SELECT ID, min(COL_1, COL_2, COL_3) FROM ...
Run Code Online (Sandbox Code Playgroud)
但min()似乎一次只支持两个cols.
假设我有一个像这样的 react DOM 元素:
render () {
  ...
  return (
    <div className = "widePaddingRight" style = {{width: "100px"}}
      ref = "pickMe"
    >
      ...
    </div>
  )
}
Run Code Online (Sandbox Code Playgroud)
CSS:
.widePaddingRight{
  paddingRight: 20px
}
Run Code Online (Sandbox Code Playgroud)
如果我稍后访问此元素并尝试获得其宽度:
componentDidMount () {
  var elem = this.refs.pickMe.getDOMNode().getBoundingClientRect()
  console.log(elem.width)
}
Run Code Online (Sandbox Code Playgroud)
我进入120了我的控制台。我的预期结果是100。由于我必须使用原始宽度进行计算,因此我必须获得元素的填充属性。
问题:如何paddingRight在我的 react-class 中获取组件的属性?
更新
通过@Mike 'Pomax' Kamermans 的输入,我能够解决潜在的问题(谢谢):只需添加box-sizing: border-box到 CSS。现在getBoundingClientRect()给出100而不是120.
我仍然不知道如何从已安装的 div 中获取 css 类属性 - 有什么建议吗?
javascript ×6
sapui5 ×6
reactjs ×3
webpack ×2
xml ×2
asynchronous ×1
ecmascript-6 ×1
hana ×1
julia ×1
performance ×1
sap ×1
singlepage ×1
sql ×1