现在我在用户更改日期后尝试做某事.但似乎我的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)
任何的想法?
我有一个带有一些数据的表单页面.并且想要在用户单击浏览器后退按钮时显示弹出/警报,询问"他们是否想要返回或停留在同一页面上".我正在使用angular-ui-router,$stateProvider并希望将其仅绑定到一个状态/视图.
现在我试图从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) 正如你所知,每次我们输入谷歌地图自动完成功能都会触发,我想为此设置一个延迟函数,例如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)
每次我尝试输入搜索输入时,它都会立即弹出搜索结果列表,有什么办法可以延迟它吗?那么用户可以输入更多字符吗?
我有一个要求,以防止路由如果是第一次登录的用户,他们必须留在设置页面,以重置密码做别的事情之前(或去其他页面),代码为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)
我有一个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)
我想要的是,如果用户选中复选框,我需要高亮显示整行.但是单独留下其他未经检查的行,只是说是让用户知道这一行被选中,如果他们取消选中该行,该类就会消失.
现在我需要删除行取决于它是否被选中.但是如何在每个选定行的控件中访问$ 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) 现在我正在使用服务将数据从视图传递到其他视图(不同的控制器也是如此),在视图 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中吗?