小编lin*_*xie的帖子

如何捕获bootstrap datepicker更改事件?

现在我在用户更改日期后尝试做某事.但似乎我的ng-change被忽略了.这是我的代码示例:

 <input ng-change='changedate()'
                       type="text" 
                       starting-day="2" 
                       show-button-bar="false" 
                       show-weeks="false" 
                       class="form-control addTicketDateInput" 
                       datepicker-popup="dd MMM" 
                       ng-model="startdate" 
                       is-open="openstart"                         
                       datepicker-options="dateOptions"           
                       ng-required="true"
                       close-text="Close" />
Run Code Online (Sandbox Code Playgroud)

任何的想法?

angularjs bootstrap-datepicker

18
推荐指数
2
解决办法
4万
查看次数

如何检测用户是否单击Angularjs中的浏览器后退按钮

我有一个带有一些数据的表单页面.并且想要在用户单击浏览器后退按钮时显示弹出/警报,询问"他们是否想要返回或停留在同一页面上".我正在使用angular-ui-router,$stateProvider并希望将其仅绑定到一个状态/视图.

angularjs angular-ui-router

18
推荐指数
2
解决办法
4万
查看次数

Angularjs选择值未定义

现在我试图从select下拉列表获取值,但它返回undefined.事情在html级别,它按预期工作,这是我的代码:

<div class='subcontent'>            
  <input id="me" type="radio" class='choosemethod' ng-model="paymentmethod" value="Y"><label for="me" class='choosemethod'>Me</label>
  <input id="company" type="radio"  ng-model="paymentmethod" value="N" class='choosemethod'><label for="company" class='choosemethod'>My Company</label><br/>
  <span class='helptext'>Who makes payments to this account?</span><span class='help' style='margin-left:20px;width:20px;height:20px;'>help</span>
</div>

<div class='paymentmethods subcontent' ng-switch on="paymentmethod">
  <select ng-model='selectedmethod' ng-init="selectedmethod=Memethods[0]" id='methods' ng-switch-when='Y'>
    <option ng-repeat="method in Memethods" value="{{method}}">{{method}}</option>
  </select>

  <select ng-model='selectedmethod' ng-init="selectedmethod=companies[0]" ng-switch-when='N' style='float:left'>
    <option ng-repeat='companyoption in companies' value="{{companyoption}}">{{companyoption}}</option>
  </select>

  <div class='clear'></div>
  <label for ='methods'>Payment Method</label><span class='help' style='margin-left:20px;width:20px;height:20px;'>help</span>
</div>
Run Code Online (Sandbox Code Playgroud)

在js中:

$scope.Memethods = ['Same as Card/Account Name','American Express','American Express Corp','Cash','Checking','MasterCard','My Visa','VISA'];
$scope.companies = ['Company …
Run Code Online (Sandbox Code Playgroud)

select angularjs ng-options

6
推荐指数
1
解决办法
2万
查看次数

如何延迟谷歌自动完成功能以节省信用

正如你所知,每次我们输入谷歌地图自动完成功能都会触发,我想为此设置一个延迟函数,例如250毫秒,这样可以给用户更多的时间来输入并节省积分。我尝试添加 $timeout,但看起来它对我不起作用。请您帮我看看这个好吗?提前致谢。网页:

<input name="google_places_ac" type="text" class="google_places_ac input-block-level" ng-model="address" placeholder="Please enter a location" ng-blur="updateMap()"/>
Run Code Online (Sandbox Code Playgroud)

指示:

 link: function($scope, elm, attrs) {  

                    $timeout(function(){

                    var autocomplete = new google.maps.places.Autocomplete($(elm).find(".google_places_ac")[0], {});  
                    google.maps.event.addListener(autocomplete, 'place_changed', function() {
                             var place = autocomplete.getPlace();
                            $scope.address = place.formatted_address;
                            $scope.location = {
                                formatted_address: place.formatted_address,
                                loglat: place.geometry.location
                            };
                            $scope.$apply();
                            //pop up the event and index(if needed)
                            $scope.$emit('updatemap',$scope.indexposition);
                        });
                    },1000);
}
Run Code Online (Sandbox Code Playgroud)

每次我尝试输入搜索输入时,它都会立即弹出搜索结果列表,有什么办法可以延迟它吗?那么用户可以输入更多字符吗?

google-maps google-maps-api-3 angularjs angularjs-directive

5
推荐指数
1
解决办法
5152
查看次数

更改URL中断路由阻止

我有一个要求,以防止路由如果是第一次登录的用户,他们必须留在设置页面,以重置密码做别的事情之前(或去其他页面),代码为99%,现在的工作,我可以改变url/刷新页面,它工作正常但只有一个问题.这是代码:

.state('accountsetting.security', {
        url: '/security/{isFirstTimeUser}',
        templateUrl: 'settings/security/security.html',
        params:      {'isFirstTimeUser': null}
    }) // this is where I define the route
// in the run block
.run(['$state','$rootScope',function($state,$rootScope) {
    // var isFirstTimeUser = false;
    //     userinforservice.getUserInformation().then(function(data){
    //            isFirstTimeUser = data.isFirstTimeUser; 
    //     });

    $rootScope.$on('$stateChangeStart', function(event, toState, toParams, fromState, fromParams) {
        if(fromState.name!=="undefined" && toState.name=='firsttimeuser'){
            $rootScope.isFirstTimeUser=true;
            $state.go('accountsetting.security',{isFirstTimeUser:true});
            event.preventDefault();
        }else if((toParams.isFirstTimeUser || fromParams.isFirstTimeUser) && toState.name !='accountsetting.security'){
            $state.go('accountsetting.security',{isFirstTimeUser:true});
            event.preventDefault();
        }
        else{
            return;
        }
    });
}]);
Run Code Online (Sandbox Code Playgroud)

网址如下:https:// localhost/app /#/ account/security/true …

angularjs angular-ui-router

3
推荐指数
1
解决办法
193
查看次数

如何将css类应用于ng-repeat中的选定行

我有一个ng-repeate表.我需要为每个选定的行设置toggleClass.这是我的代码:

 <tr ng-repeat="expenses in Expensereports" ng-mouseenter='showpencil=true' ng-mouseleave='showpencil=false' ng-class="{'selectedrow':selectDelete}">
              <td class="text-center">
                <input type="checkbox" ng-model='expenses.isDelete' class='deletebox' ng-change='selectedDeleteRow(expenses.isDelete)'/>
              </td>
              <td class="text-center">{{expenses.date | parseDateFormat | date}}</td>
             <td class="text-center">{{expenses.type}}</td>
</tr>
Run Code Online (Sandbox Code Playgroud)

我的JS代码:

$scope.selectedDeleteRow = function(selected){
         if(selected==true){
            $scope.selectDelete=true;
         }else{
            $scope.selectDelete=false;
         }
    }
Run Code Online (Sandbox Code Playgroud)

我想要的是,如果用户选中复选框,我需要高亮显示整行.但是单独留下其他未经检查的行,只是说是让用户知道这一行被选中,如果他们取消选中该行,该类就会消失.

angularjs

2
推荐指数
1
解决办法
3148
查看次数

如何从angularjs中的表中删除行

现在我需要删除行取决于它是否被选中.但是如何在每个选定行的控件中访问$ index?我的代码在这里:

  <div ng-app="appTable">
        <div ng-controller="Allocation">

            <button ng-click="add()"> Add </button> 
            <button ng-click="remove()">remove</button>
            <table>
                <th>
                    <td>S.No</td>
                    <td>Name</td>
                    <td>Dept</td>

                </th>
                <tr ng-repeat="data in dataList">
                    <td><input type="checkbox" ng-model="delete"/>{{$index}}</td>    
                    <td> <input type="text" ng-model="data.name"/></td>    
                    <td><input type="text" ng-model="data.dept"/></td>

                </tr>
            </table>
        </div>    
    </div>

var app = angular.module("appTable",[]);
app.controller("Allocation",function($scope) {

    $scope.dataList = [{name:'lin',dept:'b'},{name:'test',dept:'aaa'}];
    $scope.add = function(){
        var data = {};
       data.name ='' ;
       data.dept ='';
       $scope.dataList.push(data);

    }
    var deletes=[];
    $scope.delete=false;


    $scope.remove = function(){

        console.log(deletes);
        angular.forEach($scope.delete,function(v){
        if(v==true){
            deletes.push($index);*How can I get the $index for selected row*
            console.log(deletes);
        }
    }); …
Run Code Online (Sandbox Code Playgroud)

angularjs

1
推荐指数
1
解决办法
2万
查看次数

页面刷新后数据会消失,

现在我正在使用服务将数据从视图传递到其他视图(不同的控制器也是如此),在视图 A 中,我有控制器 CtrA,我用来传递数据的服务是:

.factory(
                'editreportservices',
                [
                        '$q',
                        'sessionId',
                        function($q, sessionId) {
                                var sharedata = {};
                                var org={};
                                function passed(data){
                                    sharedata = data;
                                };
                                function getsharedata(){
                                    return sharedata;
                                };
                                function passedorg(data) {
                                    org=data;
                                }
                                function getorg() {
                                    return org;
                                }
                                return{
                                    passed:passed,
                                    getsharedata:getsharedata,
                                    passedorg:passedorg,
                                    getorg:getorg
                                }               
                        }]);
Run Code Online (Sandbox Code Playgroud)

在 CtrA 中,如果我按下按钮,我将为 editreportservices.passed(report) 设置值,例如:

$scope.goeditpage = function(report){if(report){
                            editreportservices.passed(report);
                            }
                            else{
                            report={}
                            editreportservices.passed(report);
                            };
                       $state.go('editreport');
}
Run Code Online (Sandbox Code Playgroud)

并且它也将更改为视图 B,并且在 VIew BI 中可以使用 $scope.lin = editreportservices.getsharedata() 访问数据,它按预期工作。但是有一个问题,我不确定它是否是一个错误,如果用户刷新页面,从 viewA 传递的数据将消失。这可能是一个糟糕的用户体验,无论如何II可以在从VIewA传递之后将数据保留在viewB中吗?

model-view-controller angularjs angular-services

0
推荐指数
1
解决办法
3320
查看次数