bootstrap navbar在其他jade文件中搜索

时间:2015-08-01 14:36:22

标签: angularjs pug

在我的Angular JS应用程序中,在view文件夹中,在layout.jade文件中我使用bootstrap" nav.navbar.navbar-inverse"来自" http://www.tutorialrepublic.com/twitter-bootstrap-tutorial/bootstrap-navbar.php"我在下一行做了一处改动。     input.form-control(type =' text',placeholder =' Search') 至     input.form-control(type =' text',placeholder =' Search' ng-model =' searchText') 然后,我使用另一个jade文件vieworder.jade,这里是内容

extends layout
block content
table.table.table-striped(ng-app="vieworder", ng-controller="viewordercontroller" border='1', cellpadding='7', cellspacing='7')
thead
tr
 th(width="10%") Customer Name
 th(width="10%") Order Type
 th(width="10%") Orders 
 th(width="10%") Order Date
 th(width="10%") Order Status
 td(width="10%")  
tbody
 tr(ng-repeat='Order in Orders | filter:layout.searchText')
   td {{ Order.custname }}
   td {{ Order.ordertype }}
   td {{ Order.noorder }}
   td {{ Order.orderdate }}
   td {{ Order.orderdate }}
   td
      a.btn.btn-small.btn-primary(ng-click='cancelOrder(Order.id)') cancel

现在,当我跑步时,我在我的vieworder页面中获得了所有订单列表,这是完美的。现在我想对表格内容应用过滤器。为此,我使用了' searchText' NG-模型。但是,当我在搜索字段中键入任何字母时,过滤器不起作用。请帮帮我..

这是控制器代码

var order = angular.module('vieworder', []);
order.controller('viewordercontroller', function ($scope, $http, $window){

$http.get('/viewalloders').
    success(function (data, status, headers, config) {
        // this callback will be called asynchronously
        // when the response is available
    $scope.Orders = data;
    console.log(data);

}).
  error(function (data, status, headers, config) {
        // called asynchronously if an error occurs
        // or server returns response with an error status.
    console.log("error");
});
console.log("santanu");

$scope.cancelOrder = function (id) {
    var path = '/deleteorder/' + id;
    var input = [];
    input.id = id;
    $http.put(path, input).success(function (response) {
        console.log("success"); // Getting Success Response in Callback
    }).
        error(function (response) {
        console.log("Santanu :error"); // Getting Error Response in Callback
    });
 }
});

1 个答案:

答案 0 :(得分:2)

如果您对两个视图使用相同的控制器,那么您不需要使用 layout.searchText 。简单地说,使用searchText,因为$ scope在整个控制器中共享。您可以直接访问它。

如果您对两个视图使用不同的控制器,则两个视图的$ scope都不同。在这种情况下,您可以将searchText定义为:

在Navbar控制器中:

$scope.object = {};
$scope.object.SearchText = "someVal";

然后将其用作"订单中的订单|滤波器:' object.searchText'"在viewOrderController中。

如果这不起作用,请告诉我

由于