Javascript 如果一个条件设置为true,而遗漏的ng显示为false,如何处理angularjs中的多个ng显示和一个ng隐藏
当用户悬停在星星上时,我想显示消息Javascript 如果一个条件设置为true,而遗漏的ng显示为false,如何处理angularjs中的多个ng显示和一个ng隐藏,javascript,angularjs,Javascript,Angularjs,当用户悬停在星星上时,我想显示消息yourated{{rate1}}star。修改?,如果用户点击了评分,我想显示“感谢评分”(我的逻辑见下面的html)。但在此之后,如果用户再次将鼠标悬停在星星上,我想显示yourated{{rate1}}star。再次修改? 问题一旦评级,它总是显示“感谢评级”。如何解决这个问题 请看我在下面做这件事的尝试,如果有人能指出我犯的错误,那将是很有帮助的。谢谢 <div class="user"> <uib-rating ng-model
yourated{{rate1}}star。修改?
,如果用户点击了评分,我想显示“感谢评分”(我的逻辑见下面的html)。但在此之后,如果用户再次将鼠标悬停在星星上,我想显示yourated{{rate1}}star。再次修改?
问题一旦评级,它总是显示“感谢评级”。如何解决这个问题
请看我在下面做这件事的尝试,如果有人能指出我犯的错误,那将是很有帮助的。谢谢
<div class="user">
<uib-rating ng-model="rate" max="5" read-only="isReadonly" on-titles="['one','two','three']" aria-labelledby="default-rating" class="readOnlyRating "></uib-rating>
<div class=" arrow_box rt" ng-show="showRatings">
<div class="ratingName">
<h5><b>Give your rating here..</b></h5>
</div>
<div class="stars">
<uib-rating ng-model="rate1" ng-click="rating(rate1)" max="5" read-only="isReadonly1" on-hover="hoveringOver(value)" on-leave="overStar = null" titles="['one','two','three']" aria-labelledby="default-rating" class="readOnlyRating "></uib-rating>
</div>
</div>
<div ng-mouseleave="hoverOut()" class="arrow_box rt" ng-show="ratevalue ">
<h5 class="ratedPopover"> Thanks for rating </h5>
</div>
<div class="arrow_box rt" ng-hide="showRatings">
<h5 class="ratedPopover">You rated <b>{{rate1}} star.</b><a ng-click="showMe()" class="modifyIt"><b > modify?</b></a>
</h5>
</div>
</div>
我建议不要使用ratevalue来显示消息“感谢您的评分”,而是使用类似于
hasjustRated
的标志。在代码中,将其初始化为false
在函数定义的开头:scope.rating=函数(rate){…}
另外,在成功回调的末尾,添加以下行:
scope.hasjustRated=true
然后在悬停左侧,将该值重置为false。我建议为休假添加一个clear函数,在离开hover时执行所有必要的步骤
showMe函数的作用也有点不清楚 问题还不清楚,什么东西在这里不起作用?我还可以看到,本地存储值似乎没有在任何地方得到更新。对此我深表歉意。我现在刚刚编辑了我的代码,并对我的问题做了简要的描述,您现在可以查看我的代码了。对不起,文字仍然不清楚。但是您确实需要在成功回调中更新localstorage。我不知道这是否是您的问题。我还建议您创建一个JSFIDLE或PLUNK,并提供一个您的问题的工作示例。如果这解决了您的问题,您可以接受我的答案。
scope.rating = function (rate) {
scope.ratevalue = rate;
if ($localStorage[localStorageRatingKey] == undefined) {
previousRatingValue = 0;
$localStorage[localStorageRatingKey] = scope.ratevalue;
} else {
previousRatingValue = $localStorage[localStorageRatingKey];
$localStorage[localStorageRatingKey] = scope.ratevalue;
}
ratingService.update({
companyId : scope.details._id,
userRating : scope.ratevalue,
previousRatingValue : previousRatingValue
}, scope.details, successCallback, errorCallback);
function successCallback(res) {
// console.log("coming from callback");
scope.rate = res.avgRatings;
scope.reviewsCount = res.totalRatingsCount;
}
function errorCallback(res) {
NotificationFactory.error('Failed to update the product rating...', res.data.message);
}
};
scope.showMe = function () {
scope.showRatings = !scope.showRatings;
console.log("showme :" + scope.showRatings);
}
scope.hoverOut = function () {
if ($localStorage[localStorageRatingKey]) {
scope.showRatings = !scope.showRatings;
} else {
scope.showRatings = true;
}
console.log("hoverOut ShowRatings:" + scope.showRatings);
}
if ($localStorage[localStorageRatingKey]) {
scope.showRatings = false;
} else {
scope.showRatings = true;
}