J'ai trois boutons suivants en haut de ma page avec une zone de saisie en dessous.
<div>
<form>
<div>
Enter Show Name<input type="text" ng-model="showName" />
</div>
</form>
</div>
<div>
<button ng-click="href="/api/renameShow"">Rename Show</button>
<button ng-click="href="/api/updateShow"">Update Show</button>
<button ng-click="href="/api/checkShow"">Check Show</button>
</div>
Mon code de module avec les routes est
var showApp = angular.module("showApp", ["ngRoute", "ngResource", "ui"]).
config(function ($routeProvider, $locationProvider) {
$routeProvider.
when('/',
{
controller: '',
templateUrl: 'main.html'
}).
when('/api/renameShow', { controller: 'renameShowCtrl', templateUrl: '/templates/renameShow.html' }).
when('/api/updateShow', { controller: 'updateShowCtrl', templateUrl: '/templates/updateShow.html' }).
when('/api/checkShow', { controller: 'checkShowCtrl', templateUrl: '/templates/checkShow.html' });
Ce que j'essaie de faire, c’est que lorsque l’on clique sur l’un des boutons, le ng-click appelle la page correspondante en passant le paramètre "showName" avec elle . Merci de me dire comment le corriger. Merci
Tout d’abord, vous devez dire à vos contrôleurs de destination (la page à laquelle vous faites référence) d’attendre et d’accepter un paramètre lorsque nous accédons à cette page:
$routeProvider.when('/api/renameShow/:showName?', {
controller: 'renameShowCtrl',
templateUrl: '/templates/renameShow.html'
})
Le point d'interrogation après le paramètre indique qu'il s'agit d'un paramètre facultatif. Vous pouvez réaliser la même chose avec les balises d'ancrage:
<a href="#/view2/mike">Go to view 2</a>
Si vous insistez pour utiliser des boutons, écrivez une fonction personnalisée accrochée au ng-clic du bouton, puis transmettez le paramètre de votre choix à partir de votre contrôleur actuel:
<button ng-click="customNavigate('Mike')">Rename Show</button>
Et dans le contrôleur:
$scope.customNavigate=function(msg){
$location.path("/view2"+msg)
}
puis dans le contrôleur de destination:
app.controller("renameShowCtrl",function($scope,$routeParams){
$scope.showName=$routeParams.showName
});
Disons que nous avons besoin de psoid dans sodtl.htm:
En HTML - so.html:
<tr ng-controller="SoController" ng-repeat="x in sos">
<td>{{x.date}}</td>
<td><a href="#/sodtl/{{x.soid}}">Dtl</a></td>
</tr>
Dans AngularJs - app.js - Configuration:
app.config(function ($routeProvider)
{
$routeProvider.
when ('/sodtl/:psoid?',
{
templateUrl : 'pages/sodtl.html',
controller : 'SoDtlController'
}
)
});
Dans Controller - app.js:
app.controller('SoDtlController', function ($scope, $http, $location, $routeParams) {
$scope.message = " $routeParams.psoid = " + $routeParams.psoid;
});
Ainsi, vous pouvez utiliser psoid pour afficher des données dans la page sodtl.html.