起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 3159|回复: 12

[结贴] 如何通过js更新baasdata组件中指定行的某一列的值

[复制链接]

1

主题

10

帖子

24

积分

新手上路

Rank: 1

积分
24
QQ
发表于 2017-7-4 20:55:20 | 显示全部楼层 |阅读模式
如何通过js更新baasdata组件中指定行的某一列的值,其它值不变。我试了一天没成功不知道哪里有问题。找到的教程一般都是介绍data数据组件的。
我利用插件,获取到手机的位置信息;然后在w文件中定义了BaasData组件,然后想在js文件中将获取到的数据更新到数据库中,一直没有成功,老说方法没有定义。

1

主题

10

帖子

24

积分

新手上路

Rank: 1

积分
24
QQ
 楼主| 发表于 2017-7-4 20:56:49 | 显示全部楼层
思路正确么,明天把代码贴上,今天回家没有
回复 支持 反对

使用道具 举报

1

主题

10

帖子

24

积分

新手上路

Rank: 1

积分
24
QQ
 楼主| 发表于 2017-7-5 10:38:25 | 显示全部楼层
第一步,在标准页面中,添加了一个div组件,仅设置了xid为baiduMap,宽度和高度,其它默认。具体如图1
图1.png
回复 支持 反对

使用道具 举报

1

主题

10

帖子

24

积分

新手上路

Rank: 1

积分
24
QQ
 楼主| 发表于 2017-7-5 10:39:33 | 显示全部楼层
第二步,仅在model组件的事件中,添加了加载地图事件(为了测试用)
图2.png
回复 支持 反对

使用道具 举报

1

主题

10

帖子

24

积分

新手上路

Rank: 1

积分
24
QQ
 楼主| 发表于 2017-7-5 10:39:59 | 显示全部楼层
第三步,相关代码


define(function(require){
        var $ = require("jquery");
        var justep = require("$UI/system/lib/justep");
        require("cordova!cordova-plugin-geolocation");//引用定位插件

        var Model = function(){
                this.callParent();
                this.lng;//定义经度变量
                this.lat;//定义纬度变量       
                navigator.geolocation.getCurrentPosition(success);//加载位置数据               
        };
       
        function success(data){               
                this.lng=data.coords.longitude;
                this.lat=data.coords.latitude;
        }
       
        //调研百度地图API加载百度地图【测试坐标1:126.619221,45.605783 测试 坐标2: 126.644032,45.639847】       
        Model.prototype.loadBaiduMap = function(){                                               
                var id = this.getIDByXID("baiduMap");                                                                                               
                window._baiduInit = function() {       
                        //var point1=new BMap.Point(126.619221,45.605783);
                                               
                        var point=new BMap.Point(this.lng,this.lng);
                        var map = new BMap.Map(id);        //创建Map实例
                        map.centerAndZoom(point,13);
                        map.enableScrollWheelZoom(true);//添加鼠标滚动缩放
                        map.setCurrentCity("哈尔滨");
                        //map.addControl(new BMap.NavigationControl());//添加缩放平移控件
                        //map.addControl(new BMap.MapTypeControl());//添加地图类型控件
                        //map.addControl(new BMap.ScaleControl());//添加比例尺控件
                        map.addControl(new BMap.OverviewMapControl());//添加缩略图控件
                        var icon = new BMap.Icon("img/icon52.gif",new BMap.Size(45,33));//设置标注的图标
                        //var icon1 = new BMap.Icon("img/icon.gif",new BMap.Size(100,100));               
                                                                                   
                        var marker=new BMap.Marker(point,{icon:icon});
                        //var marker1=new BMap.Marker(point1,{icon:icon1});
                       
                        map.addOverlay(marker);        //在地图上添加Marker,并显示  
                        //map.addOverlay(marker1);
                       
                };               
                require([ 'http://api.map.baidu.com/api?v=2.0&ak=A1b6aed5f1bc624efa9a8bc7148fc7c2&callback=_baiduInit' ],
                function(){
                    if (!(window.BMap && window.BMap.apiLoad)){ window._baiduInit(); }
                        }
                );
        };
       

        return Model;
});
回复 支持 反对

使用道具 举报

1

主题

10

帖子

24

积分

新手上路

Rank: 1

积分
24
QQ
 楼主| 发表于 2017-7-5 10:47:39 | 显示全部楼层
本帖最后由 fldong 于 2017-7-5 10:51 编辑

实现效果,貌似浏览器定位信息不准确,以后再改吧。

其它地方还没有测试。

昨天我建了个Baasdata组件,数据库端已经设置和连接好了。然后我想在js文件中将this.lng值的变化自动更新到数据库中相应行的对应字段上(不是新增一行,是更新)但一直使用方法不当没有成功。新手求教??

本来想在w文件中增加一个展示组件,然后不显示该组件,将Baasdata组件中的相关数据绑定到该展示组件上,然后js文件中调用该组件对应的方法,实现数据到数据库中的更新,但总感觉多余,请大家指点,刚接触好多原来、概念理解的很浅。请大家多多帮忙、指教,十分感谢。
图3.png
回复 支持 反对

使用道具 举报

发表于 2017-7-5 13:43:05 | 显示全部楼层
请问baasData 上一共有几行数据??
如果只有一行的话! 在调用定位成功的事件中! data.setValue('字段','值')  赋值 即可!


首先 baasData 中应该先加载数据!设置过滤条件!值查询当前用户的那条数据即可!不要都查出来!
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

1

主题

10

帖子

24

积分

新手上路

Rank: 1

积分
24
QQ
 楼主| 发表于 2017-7-6 14:26:25 | 显示全部楼层
本帖最后由 fldong 于 2017-7-6 14:28 编辑

首先 baasData 中应该先加载数据!设置过滤条件!值查询当前用户的那条数据即可!不要都查出来!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~是指下面这块么?
a.png
回复 支持 反对

使用道具 举报

1

主题

10

帖子

24

积分

新手上路

Rank: 1

积分
24
QQ
 楼主| 发表于 2017-7-6 14:27:59 | 显示全部楼层
liangyongfei 发表于 2017-7-5 13:43
请问baasData 上一共有几行数据??
如果只有一行的话! 在调用定位成功的事件中! data.setValue('字段',' ...

数据表中有很多行数据。我只能获取到xid,然后怎么写都不执行了,不知道哪里出问题了。一会贴出来请教。

首先 baasData 中应该先加载数据!
~~~~~~~~~~~~~~~~~~~~~~是指下面这块么?
回复 支持 反对

使用道具 举报

1

主题

10

帖子

24

积分

新手上路

Rank: 1

积分
24
QQ
 楼主| 发表于 2017-7-6 14:47:53 | 显示全部楼层
???中间的代码,为什么这么写不可以呀,该怎么写呢?
a.png
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2025-7-12 09:08 , Processed in 0.054629 second(s), 27 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表