2016-08-03 44 views
0

我使用角在這裏形成最終網址:如何隱藏ng-bind內Angularjs中的參數?

<!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/

如何隱藏從字符串參數運動,如果沒有在輸入進入?

謝謝!

+0

你想隱藏URL中的運動參數? –

+0

是的,在下面的textarea。只有當它充滿任何價值時才顯示它。 – paus

+0

檢查我的答案低於 –

回答

2

您可以通過新型號(例如campaignWithText)觀看活動模型並管理您的'?campaign=' + campaign

$scope.$watch('campaign', function() { 
     if($scope.campaign.length > 0) 
     $scope.campaignWithText = '?campaign=' + $scope.campaign; 
     else 
     $scope.campaignWithText = ''; 
}); 

,改變你的textarea:

<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/

+1

只有一個修復:http://jsfiddle.net/8k6uppk5/ – paus

0

我剛剛初始化了一個叫'url'的變量,如果文本框中填充了一些字符串,就用'campaign'。但是如果文本框爲空,則用空字符串初始化變量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}'"/> 
1

個人而言,我更喜歡在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> 
+0

我也比較喜歡這個答案,而不是提供的所有答案。 –