Вызов функции внутри $ mdDialog из родительского контроллера

Более быстрые результаты могут быть достигнуты с помощью numpy.where .

Например, при настройке unubtu -

In [76]: df.iloc[np.where(df.A.values=='foo')]
Out[76]: 
     A      B  C   D
0  foo    one  0   0
2  foo    two  2   4
4  foo    two  4   8
6  foo    one  6  12
7  foo  three  7  14

Сроки сравнения:

In [68]: %timeit df.iloc[np.where(df.A.values=='foo')]  # fastest
1000 loops, best of 3: 380 µs per loop

In [69]: %timeit df.loc[df['A'] == 'foo']
1000 loops, best of 3: 745 µs per loop

In [71]: %timeit df.loc[df['A'].isin(['foo'])]
1000 loops, best of 3: 562 µs per loop

In [72]: %timeit df[df.A=='foo']
1000 loops, best of 3: 796 µs per loop

In [74]: %timeit df.query('(A=="foo")')  # slowest
1000 loops, best of 3: 1.71 ms per loop

1
задан Hugo Seleiro 18 January 2019 в 16:30
поделиться

1 ответ

$mgDialog имеет изолированную область видимости, которая отличается от той, что указана в вашей директиве, вы можете попытаться отследить исходную область видимости и использовать ее в $mgDialog controller

 $scope.save = function(){
    var outerScope = $scope;
    $mdDialog.show({
      templateUrl: '',
      escapeToClose: true,
      clickOutsideToClose: true,
      controller: function($scope) {
        $scope.teste = function(){
          outerScope.callback();
        }
      }
    })
  }

или передать обратный вызов в качестве параметра

$scope.save = function(){
    $mdDialog.show({
      templateUrl: '',
      escapeToClose: true,
      clickOutsideToClose: true,
      locals: {
        callback: $scope.callback
      },
      controller: function($scope, callback) {
        $scope.teste = function(){
          callback();
        }
      }
    })
  }
0
ответ дан Karim 18 January 2019 в 16:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: