如何在ng-bind中隐藏Angularjs中的参数
How to hide parameter in Angularjs working inside ng-bind?
我使用Angular在这里形成最终的URL:
<!DOCTYPE html>
<html>
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>
<body>
<div ng-app="">
<p>Input the offer information your need to fill:</p>
<p>Adjust tracking link: <input type="text" ng-model="url"></p>
<p>Campaign: <input type="text" ng-model="campaign"></p>
<p>Adjust event token 1: <input type="text" ng-model="event1">Mobile goal id 1: <input type="text" ng-model="clickid1"></p>
<textarea style="width:600px; height:300px;" ng-bind="'http://' + url + '?campaign=' + campaign + '&event_callback_' + event1 + '=' + 'http://wavogo.go2cloud.org/aff_goal?a=lsr&goal_id=' + clickid1 + '&transaction_id={transaction_id}'"/>
</div>
</body>
</html>
以下是JSFiddle:http://jsfiddle.net/mx8o1ttq/
如果输入中没有输入活动参数,如何从字符串中隐藏该参数?
谢谢!
您可以通过新模型(例如campaignWithText
)查看活动模型并管理您的'?campaign=' + campaign
。
$scope.$watch('campaign', function() {
if($scope.campaign.length > 0 )
$scope.campaignWithText = '?campaign=' + $scope.campaign;
else
$scope.campaignWithText = '';
});
并更改您的文本区域:
<textarea style="width:600px; height:300px;" ng-bind="'http://' + url + campaignWithText + '&event_callback_' + event1 + '=' + 'http://wavogo.go2cloud.org/aff_goal?a=lsr&goal_id=' + clickid1 + '&transaction_id={transaction_id}'"/>
http://jsfiddle.net/ms403Ly8/128/
就我个人而言,我更喜欢在controller
中进行这种检查。
你可以通过两种方式做到这一点:
($scope.campaign ? '?campaign=' + $scope.campaign : '')
或
($scope.campaign && '?campaign=' + $scope.campaign || '')
然后,在控制器中:
function MainCtrl($scope) {
$scope.getContent = function() {
return 'http://' + $scope.url + ($scope.campaign && '?campaign=' + $scope.campaign || '') + '&event_callback_' + $scope.event1 + '=' + 'http://wavogo.go2cloud.org/aff_goal?a=lsr&goal_id=' + $scope.clickid1 + '&transaction_id={transaction_id}';
}
}
最后,在视图中:
<textarea style="width:600px; height:300px;" ng-bind="getContent()"></textarea>
如果文本框中填充了一些字符串,我只是用"campaign"初始化一个名为url的变量。但如果文本框为空,则使用空字符串初始化变量url。
<textarea style="width:600px; height:300px;" ng-init="url = campaign ?'campaign':''" ng-bind="'http://' + url + '?' +url + "=" + campaign + '&event_callback_' + event1 + '=' + 'http://wavogo.go2cloud.org/aff_goal?a=lsr&goal_id=' + clickid1 + '&transaction_id={transaction_id}'"/>
相关文章:
- AngularJS:我可以跳过函数参数回调吗
- 如何将参数传递到angularJs中的工厂
- EJS中的Angularjs-Ui路由器参数
- 如何在angularjs中传递对象字段作为指令参数
- AngularJS-参数'菜单Ctrl'不是函数,未定义
- angularjs-ui路由器父状态,参数加载在子状态之后
- Angularjs-ui路由器使用不同的参数进入相同的状态
- AngularJS-点击对象,访问它's ID&以该ID作为参数激发函数
- 通过匹配 - Javascript/AngularJS 中的参数来查找对象
- 如何在 AngularJS 中的过滤器中使用参数
- 在 angularjs 的 ga 命令中设置动态参数
- 如何使用angularjs服务将表单参数传递给Rest
- 限制与AngularJS状态匹配的动态URL参数的最佳方式
- Angularjs-如何从URL获取参数
- AngularJS-如何在ng中继器中调用以项值为参数的控制器函数
- Angularjs将函数从控制器传递到指令(或从指令调用控制器函数)-带参数
- 无法使用angularjs$http请求将参数发送到服务器操作方法
- AngularJS'ng:areq错误参数"{controller}不是函数“;,CodeIgnite
- angularJS 1.4.0 参数 'MainController' 不是一个函数,未定义
- AngularJS:参数“Ctrl”不是一个函数,没有定义