<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[eva_feng的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/eva_feng</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; eva_feng]]></copyright><item><title><![CDATA[【power automate】将Dataverse records生成PDF数据]]></title><link>https://blog.youkuaiyun.com/eva_feng/article/details/129832825</link><guid>https://blog.youkuaiyun.com/eva_feng/article/details/129832825</guid><author>eva_feng</author><pubDate>Thu, 30 Mar 2023 18:57:41 +0800</pubDate><description><![CDATA[场景： 希望能将填写的采购申请单自动生成PDF文件，留档保存。对于这个需求，我一开始是想到了Power Automate 中连接器OneDrive下有个 Convert file 操作。当然也是有很多第三方有对PDF的处理。比如【Encodian】其中有Convert HTML to PDF 方法可将HTML转为PDF。提示：以下是本篇文章正文内容，下面案例可供参考。]]></description><category></category></item><item><title><![CDATA[【Power Automate & RPA】将表格数据插入到邮件正文]]></title><link>https://blog.youkuaiyun.com/eva_feng/article/details/129670266</link><guid>https://blog.youkuaiyun.com/eva_feng/article/details/129670266</guid><author>eva_feng</author><pubDate>Sat, 25 Mar 2023 22:50:43 +0800</pubDate><description><![CDATA[提示：文章写完后，目录可以自动生成，如何生成可参考右边的帮助文档。]]></description><category></category></item><item><title><![CDATA[json对象循环遍历]]></title><link>https://blog.youkuaiyun.com/eva_feng/article/details/106008420</link><guid>https://blog.youkuaiyun.com/eva_feng/article/details/106008420</guid><author>eva_feng</author><pubDate>Fri, 08 May 2020 23:45:59 +0800</pubDate><description><![CDATA[JSON可以有两种格式
一种是对象格式的：

{“name”:“Tom”,“sex”:“male”,“age”:20}  //JSON的对象格式的字符串

另一种是数组对象

[{“name”:“Lily”,“sex”:“female”,“age”:20}]  //数据对象格式

var  json1 = {'name':'张三','sex':'男','age':18}
  for(var key in json1){
    console.log(key) //naem sex age
    cons]]></description><category></category></item><item><title><![CDATA[vue 使用vuex在页面跳转的实现]]></title><link>https://blog.youkuaiyun.com/eva_feng/article/details/105896443</link><guid>https://blog.youkuaiyun.com/eva_feng/article/details/105896443</guid><author>eva_feng</author><pubDate>Sat, 02 May 2020 23:18:05 +0800</pubDate><description><![CDATA[学习时候碰到的需求场景：我的音乐列表，点击一个音乐项跳转到音乐详情页
第一种方式：使用 router 动态路由传参，将需要的数据带过去
音乐列表页组件：

音乐详情页组件：

音乐列表页通过selectSong方法传参，在音乐详情页的挂载完成里面将数据赋给songDetail，使其渲染页面。
第二种方式：使用vuex；下面有补充vuex的相关代码

音乐详情组件：

音乐列表页中通过引入mutat...]]></description><category></category></item><item><title><![CDATA[DOM操作-创建、添加、移除、移动、复制和查找节点等]]></title><link>https://blog.youkuaiyun.com/eva_feng/article/details/105720772</link><guid>https://blog.youkuaiyun.com/eva_feng/article/details/105720772</guid><author>eva_feng</author><pubDate>Fri, 24 Apr 2020 00:26:03 +0800</pubDate><description><![CDATA[参考资料：
https://www.jianshu.com/p/a44327733513
https://blog.youkuaiyun.com/fouerror/article/details/80710111
1、创建节点：
1.1 创建元素节点：createElement()
  栗子： var p = document.createElement("p");
         p.nodeType;/...]]></description><category></category></item><item><title><![CDATA[call()、apply()、bind()来改变this指针的指向函数]]></title><link>https://blog.youkuaiyun.com/eva_feng/article/details/105618317</link><guid>https://blog.youkuaiyun.com/eva_feng/article/details/105618317</guid><author>eva_feng</author><pubDate>Sun, 19 Apr 2020 17:42:26 +0800</pubDate><description><![CDATA[this指向：this最终指向的是调用它的对象。
通过apply和call改变函数的this指向，他们两个函数的第一个参数都是一样的表示要改变指向的那个对象，第二个参数，apply是数组，而call则是arg1,arg2…这种形式。通过bind改变this作用域会返回一个新的函数，这个函数不会马上执行。

Function.apply(thisArg,[argsArray])方法能接收两个参数
t...]]></description><category></category></item><item><title><![CDATA[js中的闭包]]></title><link>https://blog.youkuaiyun.com/eva_feng/article/details/105599561</link><guid>https://blog.youkuaiyun.com/eva_feng/article/details/105599561</guid><author>eva_feng</author><pubDate>Sun, 19 Apr 2020 10:38:18 +0800</pubDate><description><![CDATA[对于闭包这个问题，也是懵懵懂懂，不是特别理解，在这做个记录。
首先我们来了解几个概念：
变量作用域：
变量作用域两种：全局变量、局部变量。js中函数内部可以读取全局变量，函数外部不能读取函数内部的局部变量。
作用域链：
当代码在一个环境中执行，会创建变量对象的一个作用域链。子对象会一级一级向上寻找所有父对象的变量，反之不行。
立即执行函数：
( function(){…} )()和( functi...]]></description><category></category></item><item><title><![CDATA[vue 非父子组件之间的通信--eventBus]]></title><link>https://blog.youkuaiyun.com/eva_feng/article/details/105538959</link><guid>https://blog.youkuaiyun.com/eva_feng/article/details/105538959</guid><author>eva_feng</author><pubDate>Wed, 15 Apr 2020 17:34:26 +0800</pubDate><description><![CDATA[非父子组件之间的通信有两种方法：eventBus，vuex。这里先只记录下eventBus的使用方法。

例如：一个父组件中同时引入A组件和B组件，A组件中点击触发后将数值10传到B组件中。

第一步：定义一个公共的实例文件eventBus.js，作为中间仓库来传值。


//eventBus.js
import Vue from 'vue'
export default new Vue()

第...]]></description><category></category></item><item><title><![CDATA[vue父子组件之间传值]]></title><link>https://blog.youkuaiyun.com/eva_feng/article/details/105492711</link><guid>https://blog.youkuaiyun.com/eva_feng/article/details/105492711</guid><author>eva_feng</author><pubDate>Mon, 13 Apr 2020 23:38:43 +0800</pubDate><description><![CDATA[组件和组件之间的通信，最常用的就是父子之间的通信。在vue 中， 在一个组件中通过 import 引入另一个组件，这个组件就是父组件，被引入的组件就是子组件。
父组件传值给子组件
父组件部分：

子组件部分：

总结：

父组件中引入子组件，在子组件的标签上绑定你要传给子组件的值；
子组件在props中创建一个属性，用以接收父组件传过来的值 ；

子组件在把值传给父组件
子组件部分：

父组件部分...]]></description><category></category></item><item><title><![CDATA[vue router的基本使用]]></title><link>https://blog.youkuaiyun.com/eva_feng/article/details/105465769</link><guid>https://blog.youkuaiyun.com/eva_feng/article/details/105465769</guid><author>eva_feng</author><pubDate>Sun, 12 Apr 2020 11:20:46 +0800</pubDate><description><![CDATA[vue router是vue学习的核心之一，刚开始学习，官网的有些方法理不清，在网上找了些相关的，自己能看得懂和理解的。在这记录下，需要的时候自己过来查。
router有两种模式，hash模式和history模式。
hash模式：地址栏 URL 中的 # 符号；（例如：http://localhost:8080/#/user/007）；
history模式：地址栏是常规的url（例如：https:...]]></description><category></category></item><item><title><![CDATA[vue router动态路由点击跳转路径地址重复追加]]></title><link>https://blog.youkuaiyun.com/eva_feng/article/details/105444709</link><guid>https://blog.youkuaiyun.com/eva_feng/article/details/105444709</guid><author>eva_feng</author><pubDate>Fri, 10 Apr 2020 23:58:07 +0800</pubDate><description><![CDATA[在练习写vue router动态路由时碰到的问题。点击多次时，地址栏不断增加重复。
查看代码发现是页面中相对路径最前面少了 ‘ / ’；添加上就能正常显示了。如下：


...]]></description><category></category></item><item><title><![CDATA[微信小程序列表页分页加载功能]]></title><link>https://blog.youkuaiyun.com/eva_feng/article/details/105244666</link><guid>https://blog.youkuaiyun.com/eva_feng/article/details/105244666</guid><author>eva_feng</author><pubDate>Wed, 01 Apr 2020 15:07:47 +0800</pubDate><description><![CDATA[微信小程序做分页加载数据，会做一些下拉加载更多、然后上拉刷新的操作。数据放在一个for循环里去加载，数据源是一个数组对象。在加载下一页数据时，将下一页的数据拼到当前数组后面。
代码如下：
wxml代码
&lt;scroll-view class="scrollview"&gt;
  &lt;block wx:for="{{list}}" wx:key="index"&gt;
      &lt;v...]]></description><category></category></item><item><title><![CDATA[微信小程序setData修改数组某一项的值]]></title><link>https://blog.youkuaiyun.com/eva_feng/article/details/105235791</link><guid>https://blog.youkuaiyun.com/eva_feng/article/details/105235791</guid><author>eva_feng</author><pubDate>Wed, 01 Apr 2020 00:10:20 +0800</pubDate><description><![CDATA[官方文档示例：


changeItemInArray: function() {
    // 对于对象或数组字段，可以直接修改一个其下的子字段，这样做通常比修改整个对象或数组更好
    this.setData({
      'array[0].text':'changed data'
    })
  },

这种方法对于静态的数据设置有效，但是对于动态的数据，不起作用，会报错。

解决...]]></description><category></category></item><item><title><![CDATA[微信小程序购物车功能]]></title><link>https://blog.youkuaiyun.com/eva_feng/article/details/105180312</link><guid>https://blog.youkuaiyun.com/eva_feng/article/details/105180312</guid><author>eva_feng</author><pubDate>Sun, 29 Mar 2020 21:53:13 +0800</pubDate><description><![CDATA[一个购物车展示的是一个列表(carts)，列表里的单个item包含：商品id(id)，商品图(image)，商品名(title)，单价(price)，数量(amount)，单选按钮(selected)；全选按钮，需要一个字段(selectAllStatus)表示是否全选；总价(totalPrice)；总数量（totalNum）。
还有一个需要判断的是购物车是否为空(hasList)。
购物车主要有...]]></description><category></category></item><item><title><![CDATA[微信小程序本地json数据在页面展示]]></title><link>https://blog.youkuaiyun.com/eva_feng/article/details/105174380</link><guid>https://blog.youkuaiyun.com/eva_feng/article/details/105174380</guid><author>eva_feng</author><pubDate>Sun, 29 Mar 2020 10:43:31 +0800</pubDate><description><![CDATA[新建一个json文件，使用module.exports定义出口，要不然其他文件读取不到json数据。还有一个需要注意的小细节，本地json数据放在js文件里面，不是json文件，不然会报错。
// 本地模拟json数据
var jsonData = [
  {
    "id":1,
    "name": "Tom1"
  },
  {
    "id": 2,
    "name": "Tom...]]></description><category></category></item><item><title><![CDATA[微信小程序提交表单清空输入框]]></title><link>https://blog.youkuaiyun.com/eva_feng/article/details/105119955</link><guid>https://blog.youkuaiyun.com/eva_feng/article/details/105119955</guid><author>eva_feng</author><pubDate>Thu, 26 Mar 2020 22:37:09 +0800</pubDate><description><![CDATA[这里简单记录两种方法：
一、在input中绑定对象value，在提交成功后的回调中重新设置值为空。个人觉得这种方式适合表单数据比较少。
wxml代码
&lt;form bindsubmit="submitForm"&gt;
    &lt;input name="title"  maxlength="20" value="{{title}}" /&gt;
    &lt;input name="t...]]></description><category></category></item><item><title><![CDATA[微信小程序 用户授权登录]]></title><link>https://blog.youkuaiyun.com/eva_feng/article/details/105113514</link><guid>https://blog.youkuaiyun.com/eva_feng/article/details/105113514</guid><author>eva_feng</author><pubDate>Thu, 26 Mar 2020 11:24:25 +0800</pubDate><description><![CDATA[微信小程序弹窗授权，使用 button 组件，并将 open-type 指定为 getUserInfo 类型，获取用户基本信息。
自己练手写的代码，有可能实际项目中这种写法不能通过审核，代码如下：
wxml:
&lt;view wx:if="{{isHide}}"&gt;
    &lt;view wx:if="{{canIUse}}" &gt;
        &lt;view class='h...]]></description><category></category></item><item><title><![CDATA[微信小程序tab切换]]></title><link>https://blog.youkuaiyun.com/eva_feng/article/details/105090753</link><guid>https://blog.youkuaiyun.com/eva_feng/article/details/105090753</guid><author>eva_feng</author><pubDate>Wed, 25 Mar 2020 13:51:15 +0800</pubDate><description><![CDATA[wxml
&lt;view class="nav-box"&gt;
  &lt;!-- tab框 --&gt;
  &lt;view class="nav-tab"&gt;
    &lt;view wx:for="{{navList}}" wx:key="index" data-current="{{index}}" class="item {{currTab == index? 'active...]]></description><category></category></item><item><title><![CDATA[小程序避免多次点击重复触发事件]]></title><link>https://blog.youkuaiyun.com/eva_feng/article/details/105084062</link><guid>https://blog.youkuaiyun.com/eva_feng/article/details/105084062</guid><author>eva_feng</author><pubDate>Tue, 24 Mar 2020 23:26:51 +0800</pubDate><description><![CDATA[当用户点击按钮或控件时，如果响应比较慢，往往会重复点击，另外也会存在用户故意反复快速点击的情况，这种时候就会多次触发点击事件造成非期望的结果。如何解决或避免这个问题呢？一般来说有两种情况。 1、点击事件是执行请求 这种情况下可以在请求执行之前显示一个模式的加载框，请求完成后再关闭加载框，由于小程序在1.1.0版本基础库才支持wx.showLoading，因此需要对低版本做兼容处理，代码如下：
fu...]]></description><category></category></item><item><title><![CDATA[小程序用户收货地址修改]]></title><link>https://blog.youkuaiyun.com/eva_feng/article/details/105072229</link><guid>https://blog.youkuaiyun.com/eva_feng/article/details/105072229</guid><author>eva_feng</author><pubDate>Tue, 24 Mar 2020 21:47:38 +0800</pubDate><description><![CDATA[页面使用的是weui的组件。主要实现的思路：
1、从地址管理页跳转过来，在onload里面将传过来的参数address获取后，渲染到前台页面；同时将address数据缓存到本地；
2、修改地址后提交，提交的数据与缓存中的数据值比对。
注意点：从上一个页面中传过来的参数是对象转的字符串，当前页要转其转为json对象，方便获取数据。【JSON.stringify()将对象、数组转换成字符串；JSON....]]></description><category></category></item></channel></rss>